我有一个2秒超时的ajax GET请求。如果请求超时,我不希望请求仍然挂在那里。 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
答案 0 :(得分:5)
不,没有必要。在内部,当超时被命中时,jQuery将abort
为您提供XHR。
如果您查看source of $.ajax,可以看到此操作:
// Timeout
if (s.async && s.timeout > 0) {
timeoutTimer = setTimeout(function () {
jqXHR.abort("timeout");
},
s.timeout);
}