2016-03-19 27 views
0

私はajaxとjavascriptを初めて使用しています。asp.net WebメソッドへのAjax呼び出しはトリガーしません

私は私のウェブporjectのルートにpeople.aspxというページで、次のWebメソッドを持っています。

[System.Web.Services.WebMethod] 
public static string RenderDetails() 
{ 
    return "Is it working?"; 
} 

私はpeople.aspxからAjax呼び出しを介してウェブメソッドにアクセスしようとしていますページ。私はdiv要素のクリックイベントに以下のAJAX呼び出しがあります。

$("div.readonly").click(function (e) { 
    e.stopPropagation(); 
    $.ajax({ 
     type: "POST", 
     async:false, 
     url: "people.aspx/RenderDetails",     
     dataType: "json", 
     beforeSend: function() { 
      alert("attempting contact"); 
     }, 
     success: function (data) { 
      alert("I think it worked."); 
     }, 
     failure: function (msg) { alert("Sorry!!! "); } 
    }); 

    alert("Implement data-loading logic"); 
}); 

私はJavaScriptコンソールですべてのエラーを受信して​​いないよと、しかし、AJAX呼び出しは、Webメソッドをヒットしません。どんな助けもありがとう。

ありがとうございます!

+0

ブラウザのデバッグコンソールとは何ですか? –

+1

メモリ標準の 'webmethod'はGETトランザクションで、AJAXリクエストはPOSTです。 AJAXをGETに変更するか、WebメソッドをPOSTに変更してみてください。 – Ian

+0

あなたのサービスを 'ScriptService'属性で装飾し、あ​​なたのメソッドを装飾するために' ScriptMethod'を使いましたか? http://stackoverflow.com/questions/211348/how-to-let-an-asmx-file-output-json –

答えて

0

タイプをGETではなくPOSTに変更してください(これはおそらくあなたのウェブページがヒットしない理由です)。 failureparameter is incorrectでも、errorである必要があります。すべてのパラメータを含めるように展開します(詳細情報が表示されます)。つまり、AJAXクエリ全体を次のように変更します。

$.ajax({ 
    type: "GET", 
    async:false, 
    url: "people.aspx/RenderDetails",     
    dataType: "json", 
    beforeSend: function() { 
     alert("attempting contact"); 
    }, 
    success: function (data) { 
     alert("I think it worked."); 
    }, 
    error: function (jqXhr, textStatus, errorThrown) 
     alert("Sorry!!! "); // Insert breakpoint here 
    } 
}); 

ブラウザで、エラー機能をデバッグします。パラメータ(特にjqXHR)には、何が失敗したかに関する多くの情報が含まれています。それでも問題が解決しない場合は、jqXHRの情報(エラー文字列、エラーコードなど)をお知らせください。

+0

ありがとうございました。 POSTからGETに変わったことがそのトリックでした。遅い返事のためのお詫び、他のプロジェクトと一緒に追いかける側。 –

関連する問題