我注意到Google Chrome中存在一些奇怪的行为:
您对如何处理此行为有任何建议吗?
EDITED: 代码示例:
$.ajax({
url: "https://someserver.com/ws.asmx/ExecuteEx?pureJson",
type: "POST",
contentType: "application/json",
data: data,
success: function() {
console.log("success");
},
error: function() {
console.log("error");
}
})
我在编辑此帖子时在此页面的chrome dev控制台中尝试了此代码。屏幕截图如下。 第一个请求是我的。我发了它,然后拔掉了网线。 第二个请求失败(因为未插入网络电缆)。 然后我插入网络电缆,第三个请求成功。但是第一个请求仍然具有待处理状态(尽管网络连接丢失)。
答案 0 :(得分:0)
尝试替换$中的错误函数。 Ajax({使用此代码并比较结果
error: function (request, status, error) {
console.log(request.responseText);
console.log(request.status);
console.log(request.error);
}
我希望有所帮助。
答案 1 :(得分:0)
设置timeout
属性。如果在超时结束后连接丢失,那应该中止请求。
$.ajax({
url: "https://someserver.com/ws.asmx/ExecuteEx?pureJson",
type: "POST",
contentType: "application/json",
data: data,
timeout: 1000, // value in milliseconds
success: function() {
console.log("success");
},
error: function() {
console.log("error");
}
})
<强>超时强>
设置请求的超时(以毫秒为单位)。值为0表示不会超时。这将覆盖使用$ .ajaxSetup()设置的任何全局超时。超时时间从$ .ajax调用点开始;如果其他几个请求正在进行且浏览器没有可用的连接,则请求可能会在发送之前超时。