我正在使用 jQuery 发出 AJAX 请求。无论 HTTP 状态代码是 400 错误还是 500 错误,我都想执行不同的操作。我怎样才能做到这一点?
$.ajax({
type: 'POST',
url: '/controller/action',
data: $form.serialize(),
success: function(data){
alert('horray! 200 status code!');
},
error: function(data){
//get the status code
if (code == 400) {
alert('400 status code! user error');
}
if (code == 500) {
alert('500 status code! server error');
}
},
});
更新:
@GeorgeCummins 提到使用响应主体“似乎很奇怪”。这是我第一次尝试做这种事情。我的方法不是最佳实践吗?你会推荐什么?我在这里为此创建了另一个 StackOverflow 问题:What response/status code should I send to an AJAX request when there is a user/form validation error?
最佳答案
如果您使用的是 jQuery 1.5,则 statusCode
将起作用。
如果你使用的是 jQuery 1.4,试试这个:
error: function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.status);
alert(textStatus);
alert(errorThrown);
}
您应该看到第一个警报的状态代码。
关于jQuery:如何从 $.ajax.error 方法中获取 HTTP 状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700822/