Los parámetros requeridos en una error
función Ajax son jqXHR, exception
y puede usarlo como a continuación:
$.ajax({
url: 'some_unknown_page.html',
success: function (response) {
$('#post').html(response.responseText);
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
},
});
FIDDLE DEMO
Parámetros
jqXHR:
En realidad es un objeto de error que se ve así
También puede ver esto en su propia consola del navegador, utilizando console.log
dentro de la error
función como:
error: function (jqXHR, exception) {
console.log(jqXHR);
// Your error handling logic here..
}
Estamos utilizando la status
propiedad de este objeto para obtener el código de error, como si obtenemos status = 404, esto significa que no se pudo encontrar la página solicitada. No existe en absoluto. Según ese código de estado, podemos redirigir a los usuarios a la página de inicio de sesión o lo que sea que requiera nuestra lógica empresarial.
excepción:
Esta es una variable de cadena que muestra el tipo de excepción. Entonces, si estamos obteniendo un error 404, el exception
texto sería simplemente 'error'. Del mismo modo, podríamos obtener 'tiempo de espera', 'abortar' como otros textos de excepción.
Deprecation Aviso: El jqXHR.success()
, jqXHR.error()
y jqXHR.complete()
devoluciones de llamada están en desuso a partir de jQuery 1.8. Para preparar el código para su eventual eliminación, usar jqXHR.done()
, jqXHR.fail()
y jqXHR.always()
en su lugar.
Entonces, en caso de que esté utilizando jQuery 1.8 o superior , necesitaremos actualizar la lógica de la función de éxito y error como: -
// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax("some_unknown_page.html")
.done(function (response) {
// success logic here
$('#post').html(response.responseText);
})
.fail(function (jqXHR, exception) {
// Our error logic here
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
})
.always(function () {
alert("complete");
});
¡Espero eso ayude!
dataType
nodatatype
.