1
我正在测试一个引发一些异步ajax请求的工具。一个请求的响应可以中止另一个请求。就我测试过的这个(Chrome,Firefox)而言,这个效果很好,但Edge不喜欢中止!一旦XmlHttpRequest被阻塞,Edge会抛出失败 - 我不希望发生这种情况。当XmlHttpRequest被中止时,边缘触发器失败
这是代码(也被另一个片段中止):
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
}