メソッドを使用し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()
理想的には、この動作がサイト全体でグローバルになるように、上記の方法に組み込むことができるソリューションが必要です。