0

以下は、私の JQuery AJAX メソッドです。

function meFun() {
    alert('enter');

    $.ajax({
        type: "POST",
        url: "About.aspx/GetRes",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            // Do something interesting here.
            alert(msg);
        }
    });
    alert('end');

}

以下は私のボタンコードです:

<input type="button" onclick="meFun();" value="Click me" id="btn" />

フォーリングは About.aspx の私の機能です

Public Function GetRes() As Boolean
    Return True
End Function

meFun()メソッドは正常に呼び出されましたが、を呼び出さGetRes()ず、AJAX 呼び出しは応答を返しません。

理由はありますか?また、この種の AJAX の問題をデバッグする良い方法を提案してください。

4

2 に答える 2

3

まず、サーバー側の GetRes 関数に WebMethod 属性があることを確認し (これは C# にあります。VB でどのように行うかわかりません)、GetRes を静的 (または VB で同等のもの) にします。

[WebMethod]
public static bool GetRes()
{
  return true;
}

次に、errorハンドラーを jQueryajax呼び出しに追加します。

$.ajax({
        type: "POST",
        url: "About.aspx/GetRes",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            // Do something interesting here.
            alert(msg);
        },
        error: function (data) {
        }
    });
    alert('end');

編集: デバッグするには、エラー ハンドラーにブレークポイントを設定し、dataパラメーターを調べます。すべてのブラウザー (IE、Firefox (Firebug を含む)、および Chrome は保証できます) には、優れたスクリプト デバッガーがあります。エラーが発生した場合、エラーを詳細に説明するプロパティが にありますがdata、その名前は現時点ではわかりません。

于 2013-03-01T06:01:17.103 に答える
1

AJAX呼び出しがJSON形式を期待している間にSTRING形式でデータを返しているので、サーバー側でnewtonsoftライブラリまたはasp.netの組み込みのjsonconversionメカニズムを使用してJSON形式にTRUEに変換します

svajgerが述べたように、それをwebmethodとして宣言する必要があり、戻り値の型は文字列が優先される静的でなければなりません

成功ハンドラーでは、 JSON.parse メソッドで json データを解析する必要があります

于 2013-03-01T06:13:53.290 に答える