1. ホーム
  2. javascript

[解決済み] jQueryを使ったAjaxリクエストの中断

2022-03-19 03:50:08

質問

jQueryを使用して、以下のようなことは可能でしょうか? Ajax リクエストをキャンセル/中止する からの応答をまだ受け取っていないのですか?

解決方法を教えてください。

jQuery Ajaxのほとんどのメソッドは、XMLHttpRequest(または同等の)オブジェクトを返すので、単に abort() .

ドキュメントをご覧ください。

  • abort メソッド ( MSDN ). 現在の HTTP リクエストをキャンセルします。
  • abort() ( MDN ). すでにリクエストが送信されている場合、このメソッドはリクエストを中断します。
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()

UPDATEです。 jQuery 1.5では、返されるオブジェクトはjqXHRというネイティブのXMLHttpRequestオブジェクトのラッパーになっています。このオブジェクトはネイティブのプロパティとメソッドをすべて公開しているようなので、上記の例もまだ動作します。参照 jqXHR オブジェクト (jQuery API ドキュメント) を参照してください。

UPDATE 2: jQuery 3では、ajaxメソッドは追加のメソッド(abortなど)を持つプロミスを返すようになったので、上記のコードはまだ動きますが、返されるオブジェクトは xhr となります。このため 3.0ブログはこちら .

UPDATE 3 : xhr.abort() は、jQuery 3.xで動作します。 アップデート2 が正しいです。 jQuery Github リポジトリの詳細情報 .