jQuery を使用して、まだ応答を受け取っていないAjax リクエストをキャンセル/中止することは可能ですか?
ベストアンサー1
jQuery Ajax メソッドのほとんどは XMLHttpRequest (または同等の) オブジェクトを返すため、 を使用できますabort()
。
ドキュメントを参照してください:
var xhr = $.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
//kill the request
xhr.abort()
更新: jQuery 1.5 以降では、返されるオブジェクトは jqXHR と呼ばれるネイティブ XMLHttpRequest オブジェクトのラッパーです。このオブジェクトはネイティブのプロパティとメソッドをすべて公開しているように見えるため、上記の例はまだ機能します。jqXHR オブジェクト(jQuery API ドキュメント)。
更新2: jQuery 3では、ajaxメソッドは追加のメソッド(abortなど)を持つpromiseを返すようになったため、返されるオブジェクトはもはやオブジェクトではなくなりましたが、上記のコードは引き続き機能しますxhr
。3.0ブログはこちら。
更新 3 : xhr.abort()
jQuery 3.x でも引き続き動作します。更新 2 が正しいとは想定しないでください。jQuery Githubリポジトリの詳細情報。