0

私は完全な ajax アプリケーションを持っています。多くのボタンとテキストフィールドが$.postメソッドをトリガーします。今、私がやりたいことは、すべてのpost'sメソッドの結果をチェックすることです。このオブジェクトsuccessのフィールドが false に設定されている場合は、メソッドを実行したいと思いsome_methodます。それを行う最良の方法は何ですか?メソッドを使用するすべての関数でこのチェックを実行したくありませんpostpostすべてのメソッドの成功でトリガーされるオブザーバーを作成することは可能ですか? ありがとうございました。

4

3 に答える 3

0

ajaxSuccessグローバル イベント ハンドラーを使用し、いくつかのロジックを追加して、両方のコールバックが実行されないようにする必要があります。

$(document).ajaxSuccess(function(event, xhr, settings) {
  if ( !settings.success ) {
    //The ajax request does not have a success callback
  }
});

または、すべての post 呼び出しを変更してパラメーターglobalを設定しfalse、グローバル ハンドラーがトリガーされないようにする必要があります。

于 2013-07-01T11:54:45.023 に答える
0

ajaxSuccess()グローバル イベント ハンドラを使用する

Ajax リクエストが正常に完了するたびに実行される関数をアタッチする

元:

$('body').ajaxSuccess(function(e, xhr, options) {
    if (xhr.responseText 
        && options.dataType == "json") {
        var json = JSON.parse(xhr.responseText );
        //custom
    }
});
于 2013-07-01T11:45:37.113 に答える