【发布时间】:2016-08-28 22:44:21
【问题描述】:
我正在测试一个触发一些异步 ajax 请求的工具。一个请求的响应可以中止另一个请求。就我测试过的(Chrome、Firefox)而言,这很有效,但 Edge 不喜欢中止!一旦 XmlHttpRequest 被阻止,Edge 就会抛出失败 - 我希望不要发生这种情况。
这是代码(被另一个 sn-p 中止):
xhr = $.ajax("my-url.php")
.done(function(json) {
var data = $.parseJSON(json);
if (data.data) {
// Yay data!
} else {
// Ahw no data or empty data
}
})
.fail(function(jqXHR, textStatus, error) {
// This is triggered by Edge, `error` is "abort"
var string = "An error occurred: " + error + ".";
alert(string);
})
.always(function() {
done = true;
});
所以,结果是一个警报发生错误:中止。 问题一:为什么 Edge 这样做?它处理 XHR 的方式是否与其他浏览器不同?标准是什么?其次,我如何确保我不显示此消息?我可以在fail() 中简单地做这样的事情吗,或者这不是一个很好的方式:
if (error != 'abort') {
// Do stuff, only when error isn't abort
}
【问题讨论】:
标签: ajax xmlhttprequest microsoft-edge jqxhr