ajax リクエストのグローバル ハンドラを設定したいのですが、POST
ケースのみです。
残念ながら、グローバル ハンドラーはすべてのリクエストに対して起動$.ajaxStart()
し、$.ajaxStop()
私が見る限り、ハンドラー関数に渡されるパラメーターはありません。ほとんどの jQuery ドキュメントがそうであるように、ドキュメントも不足しています。
グローバル ajax ハンドラ内からリクエスト タイプを検出できますか?
ajax リクエストのグローバル ハンドラを設定したいのですが、POST
ケースのみです。
残念ながら、グローバル ハンドラーはすべてのリクエストに対して起動$.ajaxStart()
し、$.ajaxStop()
私が見る限り、ハンドラー関数に渡されるパラメーターはありません。ほとんどの jQuery ドキュメントがそうであるように、ドキュメントも不足しています。
グローバル ajax ハンドラ内からリクエスト タイプを検出できますか?
私はあなたがこのようなことができると思います:
jQuery.ajaxPrefilter(function( options) {
if(options.type !== 'POST') {
options.global = false;
}
});
参照:: jQuery プレフィルター
代わりにこれらのイベントを使用する必要があります: ajaxSend() ajaxComplete()
$(document).ajaxSend(function (event, xhr, options) {
if (options.type.toUpperCase() === "POST") console.log('POST request');;
}).ajaxComplete(function (event, xhr, options) {
if (options.type.toUpperCase() === "POST") console.log('POST request');
});
ajaxSend を使用すると、次を使用してリクエストを中止できます。xhr.abort()
編集:
@DemoUser's answer のようにjQuery.ajaxPrefilterを使用することをお勧めします