1

嗨,我是一个问题,似乎帖子没有返回对 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 失踪儿童

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

4 回答 4

0

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

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

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

  2. 但是,rtnObj将是undefined因为您的返回数据response不是 JSON(没有response.Data,返回的值是 a string: Hello。所以基于您上面的代码,它返回一个字符串,$("#retnTxt").html(response);

于 2012-12-24T00:45:04.383 回答
0

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

尝试为.error()和添加函数.complete()

$.post(...)
.error(function(){...})
.complete(function(){...});
于 2012-12-23T07:34:24.223 回答
0

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

于 2012-12-23T07:37:55.933 回答
0

我认为,您只忘记了以下行中的分号:

rtnObj = response.Data

问候,

于 2012-12-23T07:38:18.960 回答