簡體   English   中英

如何檢測請求是否中止?

[英]How to detect if a request was aborted?

我正在提出請求然后我就墮胎了。

var x = $.get(url, function (d, e, xhr) { alert(d); });
x.abort();

問題是它執行success函數並返回空數據... (例如這里)

是否有一個jQuery方法可以中止? 或者有沒有辦法檢查xhr是否中止?

檢測請求墮胎和避免離線模式誤報的最佳方法:

$("#loading").ajaxError(function(event, xhr) {
  if (xhr.status === 0) {
    if (xhr.statusText === 'abort') {
      // Has been aborted
    } else {
      // Offline mode
    }
  }
});

我在這里發現xhr將以狀態0返回。 似乎是一個jQuery 1.4+錯誤。 在1.3上它稱為錯誤處理程序。

編輯:試試這個:

x.onreadystatechange = null;
x.abort();

似乎工作。 不知道有什么副作用,如果有的話。


原始答案:

僅測試收到的回復是否足夠?

var x = $.get("./", function (d, e, xhr) {
    if(d) {
        // run your code with response
        alert(d);
    }
    // otherwise, nothing will happen
});

這是設計的。 測試data是否為null以確定請求是否正確響應。

如果使用jQuery.get()的請求返回錯誤代碼,它將無聲地失敗,除非該腳本還調用了全局.ajaxError()方法。

處理這個問題可能很有用(從這里開始 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM