使用错误回调解释错误
如果服务器正确管理错误,将使用不同于 2xx 的特定 HTTP 状态代码返回到你的客户端(请参阅 RFC 2616 第 10 节 )。
建议从 $.ajaxSetup()
全局捕获你的错误,如下例所示。因此,来自 ajax 调用的所有错误都将自动从 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);
}
});
当你等待特定的错误消息时,你可能还希望在特定的 $.ajax()
中重载error
回调。
$.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
}
});