JQuery响应似乎没有回报

时间:2012-12-23 07:28:09

标签: jquery asp.net

嗨,我是一个问题,似乎post没有返回对Jquery的任何回复,有人可以指出我的错误吗? 我的Html

<head runat="server">
    <title>Untitle</title>

    <script src="./script/jquery-1.8.3.min.js" type="text/javascript"></script>
    <script src="./script/jquery.masonry.min.js" type="text/javascript"></script>
    <script src="./script/missingkids.js" type="text/javascript"></script>
</head>

<body>
    <form id="form1" runat="server" method="post">
        <div>Call to JS and return <br />
            <div id="retnTxt">Return Info</div>
            <input type="button" id="btnCallJs" onclick="BtnCal()" value="CallJS" />
        </div>

    </form>
</body>
</html>

我的JS misskids

var rtnObj = null;
var ds_handler = "ds_handle.aspx";
function BtnCal()
{
    //alert("asdf");
    $.post(ds_handler,
        {"Action":"MainAct", "SubAction":"SubAct"},
             function(response)
             {
                alert(response); //no alert running here??
                rtnObj = response.Data

                $("#retnTxt").html(rtnObj);
             }, "json"); 

}

我的句柄aspx.cs

public partial class MissingKids_handle : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {

            if (Request.Form["Action"] == "MainAct")
            {
                if (Request.Form["SubAction"] == "SubAct")
                {

                    string ans = "Hello";
                    Response.Clear();
                    Response.Write(ans);
                    Response.End();
                }
            }
        }
    }
}

我只想将值返回给Return Info,但似乎不起作用。有人可以指出我的错过吗?

由于

4 个答案:

答案 0 :(得分:0)

您可能在回复中收到错误消息。您与$.post()一起使用的功能仅响应成功。

尝试添加.error().complete()的功能:

$.post(...)
.error(function(){...})
.complete(function(){...});

答案 1 :(得分:0)

您的响应是Hello,这不是json所以当jQuery尝试解析它时会出错,因此成功回调永远不会触发。为了避免错误,json会对您的响应进行编码。

答案 2 :(得分:0)

我想,您在以下行中只忘记了分号:

rtnObj = response.Data

问候,

答案 3 :(得分:0)

替代答案(对Musa's)并且基于在您的代码上方:

您的“处理程序”返回string,而不是JSON

  1. $.post的最后一个参数更改为text(因为这是您的ds_handle.aspx返回的内容)。这应该使您的alert工作。

  2. 但是,rtnObj将为undefined,因为您的返回数据response不是JSON(没有response.Data,返回值为{{1}所以基于上面代码的,返回一个字符串,string: Hello