答えて
AJAX
リクエストが完了したときに、成功したかどうかに関わらず、ajaxComplete
がトリガーされます。
200 status code
は、リクエストが正しく行われたことを意味しますが、jQuery docsで読むことができるので、AJAX
リクエストが完了するたびにコールバックが発生します。
したがって、あなたのリクエストがリダイレクトされていることを確認して、必要なものだけを処理できます。
$.ajax({
url: url,
data: { data },
complete:function(){
console.log('test');
}
});
あなたはこれらajax'esのURLをチェックし、のみ必要を扱うことができます:
私は内蔵のAJAX
コールバック関数
complete
、次のようなものを使用します。とにかく
(ちょうど側の注記)それバインド
$(document).ajaxComplete(function(event, xhr, settings) {
console.log('Ajax request completed for: ' + settings.url);
if (settings.url === "ajax/test.html") {
$(".log").text("Triggered ajaxComplete handler. The result is " +
xhr.responseText);
}
});
一度だけドキュメント準備:NETWで
$(function() {
$(document).ajaxComplete(function(event, xhr, settings) {
console.log('Ajax request completed for: ' + settings.url);
if (settings.url === "ajax/test.html") {
$(".log").text("Triggered ajaxComplete handler. The result is " +
xhr.responseText);
}
});
});
私は同じURLを28回取得しますが、このajaxリクエストは一度だけ送られます。 – phpjssql
@phpjssql $(document).unbind( 'ajaxComplete');を置くと、 – Grievoushead
を1回だけバインドするようにしてください。私のコードの前にそれは動作します。 しかし、既存の完了を解除することなく、この問題をどのように解決できますか? – phpjssql
orktabには1つのエントリしかありません。 他のステータスが200以外のエントリはありません。 console.log(settings.url)は28回同じURLを表示しますが、このajaxリクエストは1回のみ送信されます。 – phpjssql
'ajaxComplete'は毎回起動しますが、後ろにajaxを使用するプラグインになる可能性があります。できるだけ 'AJAX complete'コールバックを使うことをお勧めします。 – CapitanFindus
私はajaxCompleteしか使用できません。 同じリクエストか多分IDかどうかをチェックする可能性はありますか? URLを何度もリクエストできるので、URLを確認できません。 – phpjssql