私は非同期のAjaxリクエストを起動するツールをテストしていました。 1つの要求の応答は、別の要求の応答を中止できます。これは私がこれをテストした限り素晴らしい(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;
});
ので、結果は警告でエラーが発生しました::中止
これは、コード(それは別のスニペットで中止されます)です。質問1:なぜはEdgeですか?それは他のブラウザとは異なる方法でXHRを処理しますか?標準は何ですか?次に、このメッセージが表示されないようにするにはどうすればよいですか?私は単純にfail()
にこのような何かを、またはそのかなりこのついて行くの方法ではないことができます。
if (error != 'abort') {
// Do stuff, only when error isn't abort
}