使用錯誤回撥解釋錯誤
如果伺服器正確管理錯誤,將使用不同於 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
}
});