6

ajax リクエストのグローバル ハンドラを設定したいのですが、POSTケースのみです。

残念ながら、グローバル ハンドラーはすべてのリクエストに対して起動$.ajaxStart()し、$.ajaxStop()私が見る限り、ハンドラー関数に渡されるパラメーターはありません。ほとんどの jQuery ドキュメントがそうであるように、ドキュメントも不足しています。

グローバル ajax ハンドラ内からリクエスト タイプを検出できますか?

4

2 に答える 2

5

私はあなたがこのようなことができると思います:

jQuery.ajaxPrefilter(function( options) {
    if(options.type !== 'POST') {
        options.global = false;
    }
});

参照:: jQuery プレフィルター

于 2013-06-07T09:51:06.450 に答える
5

代わりにこれらのイベントを使用する必要があります: 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を使用することをお勧めします

于 2013-06-07T09:55:24.830 に答える