我有以下AJAX呼叫:
console.info('starting AJAX call');
$.ajax({
url: '[myUrl]',
}).done(function (result) {
console.info('success');
}).fail(function (e) {
console.error('error');
});
这对于许多AJAX调用都非常有效。如果呼叫成功,我会在控制台中收到“成功”消息。如果不是,则为“错误”消息。
但是,今天我注意到了一个奇怪的案例。 Chrome控制台看起来像这样:
starting AJAX call
Failed to load resource: net::ERR_TIMED_OUT [myUrl]
因此AJAX调用由于超时而失败,但是没有在控制台中登录success
和error
。这意味着jQuery不会调用done()
和fail()
。
不幸的是,它只发生过一次。我无法重现。很有可能是由于网络临时中断引起的。
是否有可能发生这种情况的已知情况?
是否应该始终调用回调done()
或fail()
中的一个?