Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery';s ajax()没有在net::ERR\u上调用.fail()_Jquery_Ajax - Fatal编程技术网

jQuery';s ajax()没有在net::ERR\u上调用.fail()

jQuery';s ajax()没有在net::ERR\u上调用.fail(),jquery,ajax,Jquery,Ajax,我有以下AJAX调用: console.info('starting AJAX call'); $.ajax({ url: '[myUrl]', }).done(function (result) { console.info('success'); }).fail(function (e) { console.error('error'); }); 这在很多AJAX调用中都非常有效。如果调用成功,我会在控制台中收到一条“success”消息。如果不是,则是“错误”消息

我有以下AJAX调用:

console.info('starting AJAX call');
$.ajax({
    url: '[myUrl]',
}).done(function (result) {
    console.info('success');
}).fail(function (e) {
    console.error('error');
});
这在很多AJAX调用中都非常有效。如果调用成功,我会在控制台中收到一条“success”消息。如果不是,则是“错误”消息

然而,今天我注意到一个奇怪的情况。Chrome控制台如下所示:

starting AJAX call
Failed to load resource: net::ERR_TIMED_OUT          [myUrl]
因此,AJAX调用由于超时而失败,但控制台中既没有记录
success
也没有记录
error
。这意味着jQuery既没有调用
done()
也没有调用
fail()

不幸的是,这只发生过一次。我不能复制这个。很可能是由于临时网络中断造成的


是否有已知的情况下,这可能会发生?调用
done()
fail()
中的任何一个都应该被调用吗?

因为它只发生过一次,可能是缓存的代码被执行了,但是如果缓存的代码被执行了,是否应该有一个对
done()
fail()
的回调呢?我的意思是,如果缓存代码中根本不存在“完成”和“失败”,并且该代码已被执行——哦,我明白了。我认为这不太可能。同一个查询执行了数百次,jQuery多次调用了done()和fail()。