我有一个 ajax GET 请求,超时时间为 2 秒。如果请求超时,我不希望请求仍然卡在那里。 2秒的时候,我只想停止一切。
我想知道如果已达到超时,是否有必要调用abort()
,或者达到超时阈值是否会自动中止一切...?
request = $.ajax({
type: 'GET',
url: url,
timeout: 2000,
success: function (data) {
// do some stuff
},
error: function(x, t, m) {
if(t==="timeout") {
request.abort(); // is this necessary?
// do some other stuff
} // end if timeout
} // end error function
}); // end ajax
最佳答案
不,没有必要。在内部,当超时时,jQuery 将中止
XHR。
如果您检查source of $.ajax你可以看到它的实际效果:
// Timeout
if (s.async && s.timeout > 0) {
timeoutTimer = setTimeout(function () {
jqXHR.abort("timeout");
},
s.timeout);
}
关于jquery - AJAX超时是否有必要中止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25230693/