Estoy usando FormData para ajax cargar un archivo. La carga funciona, pero el problema es que la devolución de llamada de "error" nunca se invoca. Incluso cuando mi respuesta HTTP es un error del servidor interno de 500 (para probar esto, modifico el servidor para que responda con 500), se invoca la devolución de llamada de "carga".XMLHttpRequest siempre llama a "load" event listener, incluso cuando la respuesta tiene un estado de error
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);
}
¿Alguna idea? Estoy probando esto en Chrome.
¡Bien, esto funciona! Aún así curioso ... ¿por qué no se ha invocado la devolución de llamada de "error" en mi configuración anterior? –
He tenido problemas con Chrome, solo estoy volviendo las respuestas ajax muy extrañas. Tuve un conseguir que era 200 pero nunca fue terminado. – Joe
@simmbot Nunca se invoca la devolución de llamada de error porque solo se desencadena por errores de nivel de red, ignora los códigos de retorno HTTP. – Ferdy