使用 .ajax() 处理 HTTP 响应代码
除了 .done
,.fail
和 .always
承诺基于请求是否成功触发的回调,还可以选择在从服务器返回特定 HTTP 状态代码时触发函数。这可以使用 statusCode
参数完成。
$.ajax({
type: {POST or GET or PUT etc.},
url: {server.url},
data: {someData: true},
statusCode: {
404: function(responseObject, textStatus, jqXHR) {
// No content found (404)
// This code will be executed if the server returns a 404 response
},
503: function(responseObject, textStatus, errorThrown) {
// Service Unavailable (503)
// This code will be executed if the server returns a 503 response
}
}
})
.done(function(data){
alert(data);
})
.fail(function(jqXHR, textStatus){
alert('Something went wrong: ' + textStatus);
})
.always(function(jqXHR, textStatus) {
alert('Ajax request was finished')
});
正如官方 jQuery 文档所述:
如果请求成功,则状态码函数采用与成功回调相同的参数; 如果它导致错误(包括 3xx 重定向),它们采用与
error
回调相同的参数。