0

メソッドを使用しjQuery.load()て AJAX リクエストを作成し、コンテンツをページに挿入しています。

成功したAJAX 要求の結果を検査し、返されたデータに基づいてオプションでグローバル エラー ハンドラーを呼び出す、ある種のグローバル ハンドラーを追加できるようにしたいと考えています。

提供された「成功」メソッドをリクエストを検査するメソッドでオーバーライドすることにより、「通常の」jQuery.get()リクエストでこれを達成できました。$.ajaxPrefilter()(この StackOverflow の回答にあります: https://stackoverflow.com/a/6373965 )

$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
    var originalSuccess = options.success;

    options.success = function (data) {
        if(hasErrors(data)) {
           //forward to error event handler or redirect to login page for example
        }
        else {
            if (originalSuccess != null) {
                originalSuccess(data);
            }
        }   
    };
});

私の問題は、このメソッドがメソッドから発行された AJAX リクエストに対して機能しないことjQuery.load()です。私はjQueryソースを調べましたが、これを行っています:

jQuery.ajax({ .. })
    .done(function(responseText) {
        // Inserts HTML into DOM.
    })
    .complete(callback);

成功した メソッドの結果を調べて.ajax()、遅延.done()関数が起動されないようにする方法はありますか?

.ajaxPrefilter()理想的には、この動作がサイト全体でグローバルになるように、上記の方法に組み込むことができるソリューションが必要です。

4

1 に答える 1