0

私は多くの同様の状況をグーグルで検索しましたが、どれも私の問題を解決できませんでした. 私のコードを見てください:

JavaScript:

    $.ajax({
        type: 'POST',
        url: 'alarmInfo.aspx',
        data: {request:'BasicGpaInfo'},
        dataType: "json",
        success: function (data) {
            alert(data);
        },
        error: function () {
            alert("Error in loading alarm information!");
        }
    });

ASP.NET:

    protected void Page_Load(object sender, EventArgs e)
    {
            if (Request.Form["request"] == "BasicGpaInfo")
            {
                Response.Write(BasicGpaInfo());
            }
            else
            {
                Response.Write("Nothing");
            }
    }

これは常に「Nothing」を返し、ブレークポイントはそれRequest.Formが nullであることを示します。GETそして、私はとを試しましRequest.QueryStringたが、同じ状況が発生しました。

ajax関数に何か問題があるdataと思います.次のことを試してみましたが、役に立ちません:

        data: $.param({request:'BasicGpaInfo'})
        data: "{request:'BasicGpaInfo'}"
        data: {request:'BasicGpaInfo'}

すべての Web ブラウザで動作するわけではありません。

アドバイスをお願いします。ありがとう!

4

2 に答える 2

1

あなたのコードをテストしましたが、問題なく動作します。ただし、常に「アラーム情報の読み込み中にエラーが発生しました!」が返されます。サーバーからJsonを返していないためです。

Javascript は問題ありません。json を返すと成功します。

ページ全体を返していますが、ajax メソッドは BasicGpaInfo() から Json ではなく html 全体を取得しています。

アラートにブレークポイントを設定すると、すべてのデータがデータ内にあることがわかります

error: function (data) {
alert("Error in loading alarm information!");
}

代わりに試す

error: function (data) {
alert(data);
}

ここに完全なコードがあります

$.ajax({
                type: 'POST',
                url: 'Default.aspx/BasicGpaInfoWebMethod',
                data: { request: 'BasicGpaInfo' },
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    alert(data);
                },
                error: function (data) {
                    alert("Error in loading alarm information!");
                    //alert(data); // uncomment to see the whole response
                }
            });

あなたのウェブメソッドは次のようになります:

 [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string BasicGpaInfoWebMethod(string request)
    {
        return request;
    }
于 2012-08-03T07:22:26.853 に答える
0

投稿する前に、この JSON.stringify を試してください。IE<=7 で JSON.stringify を使用するには、json.org の json2.js ファイルを含めます

 $.ajax({
        type: 'POST',
        url: 'alarmInfo.aspx',
        data: JSON.stringify({ request: 'BasicGpaInfo'}),
        dataType: "json",
        success: function (data) {
            alert(data);
        },
        error: function () {
            alert("Error in loading alarm information!");
        }
    });
于 2012-08-03T07:10:45.980 に答える