Los errores, cuando el servidor los gestiona correctamente, se devolverán a su cliente con un código de estado HTTP específico diferente de 2xx (consulte RFC 2616, sección 10). Se recomienda detectar globalmente sus errores desde su $ .ajaxSetup () como se muestra en el ejemplo siguiente. Por lo tanto, todos los errores provenientes de sus llamadas ajax se interpretarán automáticamente desde la configuración de ajax.
$.ajaxSetup({
error: function (jqXHR, exception, errorThrown) {
var message;
var statusErrorMap = {
'400': "Server understood the request, but request content was invalid.",
'401': "Unauthorized access.",
'403': "Forbidden resource can't be accessed.",
'500': "Internal server error.",
'503': "Service unavailable."
};
if (jqXHR.status) {
message = statusErrorMap[jqXHR.status];
if (!message) {
message = "Unknown Error.";
}
} else if (exception == 'parsererror') {
message = "Error.\nParsing JSON Request failed.";
} else if (exception == 'timeout') {
message = "Request Time out.";
} else if (exception == 'abort') {
message = "Request was aborted by the server";
} else {
message = "Unknown Error.";
}
// How you will display your error message...
console.log(message);
console.log(errorThrown);
}
});
Es posible que también desee sobrecargar "overload" la devolución de llamada de error en un $ .ajax () específico cuando esté esperando un mensaje de error específico.
$.ajax({
url: './api',
data: { parametersObject },
type:'post',
dataType: 'json',
success:function(output){
// Interpret success
},
error: function(xhr,textStatus,ErrorThrown){
// Specific error will not be interpreted by $.ajaxSetup
}
});