0

以下に示すように、ページにjquery ajaxを呼び出しています

  <script type="text/javascript">
    function Showgrid() {
        $.ajax({
            type: "GET",
            url: "popup.aspx",
            contentType: "application/json; charset=utf-8",
            data: {locale: 'en-US' },
            dataType: "json",
            success: function (data) {
             $("#target").html(data.d);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(jqXHR.responseText);

            }
                    });

    }
</script>

そして popup.aspx ページの読み込み時に、次のようにコードを記述しました

 protected void Page_Load(object sender, EventArgs e)
{
    Response.ContentType = "text/plain";
    Response.Write(Request.QueryString[0]);
    Response.Write(DateTime.Now.ToString());
    Response.End();
}

私は応答を得ていますが、エラー関数ではなく成功メソッドではなく、何が間違っているのかを提案してください

4

3 に答える 3

0

POSTに、つまり に変更しtype: "POST"ます。そしてページでResponse.Write(Request[0]);

于 2013-07-08T09:28:25.987 に答える
0

.aspx ページからの出力は json タイプではありません。応答に書き込む前に Json エンコーディングを使用するか、 dataType : text を変更します。

于 2013-07-08T09:39:08.257 に答える
0

前述のように、タイプを POST に変更し、データを引用符で囲みます。サーバー側では、Web メソッドを呼び出す必要があります。パラメータ「locale」を渡しているため、page_load は使用できません。以下の改訂された JSON 関数とサーバー コードを参照してください (使用しているサーバー側のコードが正しいと仮定します)。

protected void Page_Load(object sender, EventArgs e)
    {

    }


[System.Web.Services.WebMethod]
    public static void ShowGrid(string locale)
    {
        HttpContext.Current.Response.ContentType = "text/plain";
        HttpContext.Current.Response.Write(HttpContext.Current.Request.QueryString[0]);
        HttpContext.Current.Response.Write(DateTime.Now.ToString());
        HttpContext.Current.Response.End();
    }

JSON:

function Showgrid() {
    $.ajax({
        type: "POST",
        url: "popup.aspx/ShowGrid",
        contentType: "application/json; charset=utf-8",
        data: "{ 'locale': 'en-US' }",
        dataType: "text",
        success: function (data) {
            $("#target").html(data.d);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(jqXHR.responseText);

        }
    });

}
于 2013-07-08T09:41:52.117 に答える