FormDataを使用してファイルをアップロードしています。アップロードは機能しますが、問題は "エラー"コールバックが呼び出されないことです。私のHTTPレスポンスが500の内部サーバエラー(私が500で応答するようにサーバを調整することをテストする)であっても、 "load"コールバックが呼び出されます。XMLHttpRequestは、応答にエラーステータスがある場合でも、常に「load」イベントリスナーを呼び出しています。
function upload_image() {
var form = document.getElementById('upload_image_form');
var formData = new FormData(form);
var xhr = new XMLHttpRequest();
xhr.addEventListener("load", function(e) {
alert("Success callback");
}, false);
xhr.addEventListener("error", function(e) {
alert("Error callback");
}, false);
xhr.open("POST", "/upload_image");
xhr.send(formData);
}
Chromeでこれをテストしています。
ニース、これは機能します。それでもなお興味がありますが...上記のセットアップで "エラー"コールバックが呼び出されたのはなぜですか? –
私は非常に奇妙な反応を返すだけでクロムに問題がありました。私はそれが200だったが、決して完了しなかった。 – Joe
@simmbotエラーコールバックは、ネットワークレベルのエラーによってのみトリガされるため、呼び出されません.HTMLの戻りコードは無視されます。 – Ferdy