jQuery:如何从 $.ajax.error 方法中获取 HTTP 状态代码?

标签 jquery

我正在使用 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/

相关文章:

javascript - JQuery:根据复选框单击更改表内行的颜色

javascript - jQuery UI 自动完成 - 返回页面下方的选择。不确定如何删除它

javascript - (this).parent().find 无法在 ajax 调用中获取响应

javascript - CSS 从左到右淡入淡出

javascript - 使用 jquery 创建的 html 不显示

javascript - 流程图 : Cannot read property 'plugins' of undefined

javascript - WebChat 如何为发送者/接收者设置 css 颜色

php - 我如何对这个 ajax php 脚本进行排序

javascript - 每个 javascript、jquery 的 translate3d 定位问题

asp.net - onbeforeunload 事件需要 Jquery 帮助