AJAXリクエストのグローバルハンドラを設定したいのですが、POST
の場合のみです。
残念ながらグローバルハンドラ$.ajaxStart()
と$.ajaxStop()
はすべてのリクエストに対して起動しますが、わかっている限り、ハンドラ関数に渡されるパラメータはありません。ほとんどのjQueryのドキュメントが書かれているように、ドキュメンテーションも不足しています。
グローバルajaxハンドラ内からリクエストタイプを検出できますか?
AJAXリクエストのグローバルハンドラを設定したいのですが、POST
の場合のみです。
残念ながらグローバルハンドラ$.ajaxStart()
と$.ajaxStop()
はすべてのリクエストに対して起動しますが、わかっている限り、ハンドラ関数に渡されるパラメータはありません。ほとんどのjQueryのドキュメントが書かれているように、ドキュメンテーションも不足しています。
グローバルajaxハンドラ内からリクエストタイプを検出できますか?
をあなたの代わりにこれらのイベントを使用する必要がありますすることができます、ajaxSend() 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');
});
を依然としてリクエストを中止します:xhr.abort()
EDIT:
ベター@ DemoUserの答え
ありがとう! '$ .ajaxStart()'がキュー全体に対して一度起動されるので、型自体はなく、 '$ .ajaxSend()'はリクエストごとに起動されるため、要求タイプ? – George
ええ、正しい声明のようです –
私はあなたがこのような何かを行うことができると思います:
jQuery.ajaxPrefilter(function(options) {
if(options.type !== 'POST') {
options.global = false;
}
});
を参照してください:: jQuery prefilters
確かに、それは受け入れられた答えでなければなりません:) –
に私はそう思うドントとしてjQuery.ajaxPrefilterを使用することです。すべてのajax呼び出しが終了した場合はajaxStopが呼び出されますが、複数の要求があった場合はどのような要求タイプにする必要がありますか。 – luk2302