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の)代替の答えであり、上記のコードのみに基づいています:

あなたの「ハンドラー」は、stringではなく、を返していJSONます:

  1. の最後のパラメータを$.postに変更しますtext(これがあなたds_handle.aspxが返しているものだからです)。これはあなたのalert仕事になるはずです。

  2. ただし、返さrtnObjれるundefinedデータresponseがJSONではないためです(ありません。response.Data戻り値は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

あなたの応答はHellojsonではないため、jQueryが解析しようとするとエラーが発生するため、成功のコールバックは発生しません。エラー json を回避するには、応答をエンコードします。

于 2012-12-23T07:37:55.933 に答える
0

次の行のセミコロンを忘れただけだと思います。

rtnObj = response.Data

ご挨拶、

于 2012-12-23T07:38:18.960 に答える