【问题标题】:Getting Null response instead of json in jquery post from aspx.cs page在来自 aspx.cs 页面的 jquery 帖子中获取 Null 响应而不是 json
【发布时间】:2016-04-08 07:47:03
【问题描述】:

我正在开发一个简单的应用程序,我使用 jquery ajax post 方法从 default2.aspx 访问 Request.aspx 页面,如下所示:

js页面:

$(document).ready(function () {
$("#login").click(function () {
    var email = $("#email").val();
    var password = $("#password").val();
    $.ajax({
        type: "POST",
        url: "Request.aspx?Login=True",
        data: "{'username': '" + email + "','password': '" + password + "'}",
        cache: false,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            console.log(response);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            var url = "http://google.com";
            //$(location).attr('href', url);
        }
    });
});

});

Default.aspx:

<head runat="server">
<title></title>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>

<script src="Scripts/LoginCode.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
    <div class="container">
        <div class="main" id="loginform">
            <label>
                Email :</label>
            <input type="text" name="demail" id="email" />
            <label>
                Password :</label>
            <input type="password" name="password" id="password" />
            <input type="button" name="login" id="login" value="Login" />
        </div>
    </div>
</div>
</form>
</body>

Request.cs 页面:

 protected void Page_Load(object sender, EventArgs e)
{

    if (Request.QueryString["Login"] != null)
    {

            test();

    };

}



private string test()
{
    var response = new ResponseResult();
    var javaScriptSerializer = new JavaScriptSerializer();
    response.Status = -1;
    response.ErrorMessage = "";
    response.Action = "UserProjects";
    response.Data = "The Username or password you entered is not valid";
   return javaScriptSerializer.Serialize(response);
}

public class ResponseResult
{
    public string Action { get; set; }
    public int Status { get; set; }
    public string ErrorMessage { get; set; }
    public object Data { get; set; }
}

问题: 作为回应 NUll 即将到来,但我预计是 json。请让我知道我哪里出错了。

如果您需要更多信息,我会尽力提供。

提前致谢。

【问题讨论】:

  • 您在测试中返回 JSON,但它从未使用过,您也没有回显它。
  • 是的,正如 jcubic 提到的,您没有使用从测试方法返回的 json。
  • @jcubic 我如何从 page_load 方法返回它?

标签: javascript c# jquery asp.net json


【解决方案1】:

最好使用 Restful Webservices 或 Web Method 从 AJAX 调用。

但您仍然可以执行以下操作。

使用Response.Write() 而不是返回字符串。

使用此代码。

private void test()

{
    var response = new ResponseResult();
    var javaScriptSerializer = new JavaScriptSerializer();
    response.Status = -1;
    response.ErrorMessage = "";
    response.Action = "UserProjects";
    response.Data = "The Username or password you entered is not valid";
    string result = javaScriptSerializer.Serialize(response);

    Response.Clear();
    Response.ContentType = "application/json; charset=utf-8";
    Response.Write(result);  //write json string to output   
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-18
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 2013-11-30
    • 1970-01-01
    相关资源
    最近更新 更多