我有以下沼泽标准jQuery ajax请求。我一直在尝试通过将我的计算机与网络中的请求断开连接来引发错误状态(服务器需要10秒钟来回复,因此很简单)。
当我断开连接时,调用alert('Success: '+ json);
,将null
用作响应json。我希望错误部分被调用。
有谁知道为什么断开连接被视为成功,以及如何导致失败呢?
$.ajax({
url : 'post.php',
data : { id : 123 },
type: 'POST',
dataType : 'json',
success : function(json) {
alert('Success: '+ json);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert('Error: ' + errorThrown);
},
complete : function(xhr, status) {
}
});
最佳答案
我认为自jQuery 1.4发行以来就存在一个错误。
从1.3.2升级后,我注意到对XMLHttpRequest对象调用中止会触发成功回调,而不是错误回调。仔细检查代码库后,我注意到它们已用自定义方法替换了典型的中止方法。可能与此有关。
这是关于它的文章:
http://forum.jquery.com/topic/after-aborting-an-ajax-call-success-event-is-still-being-fired
关于ajax - 当计算机断开连接时,jQuery .ajax调用显示成功。如何引发Ajax错误状态?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3223785/