Я тестировал инструмент, который запускает некоторые асинхронные запросы 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
}