[英]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.