使用jQuery AJAX捕获404状态

时间:2012-06-07 11:54:55

标签: jquery http-status-code-404

我有这段代码:

$.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID },
    success: function (data) {
        $('#CityID').html(data);
    },
    error: function (ajaxContext) {
        alert(ajaxContext.responseText)
    }
});

我仍然对ajaxContext以及如何捕获404返回码感到困惑。不过我有另一个问题。我正在阅读有关成功编码和失败的内容,并且在最近的jQuery版本中不再使用错误。

因此,我应该将代码更改为使用完成并失败。那怎么能检查404?

2 个答案:

答案 0 :(得分:30)

将错误功能替换为以下内容......

error:function (xhr, ajaxOptions, thrownError){
    if(xhr.status==404) {
        alert(thrownError);
    }
}

答案 1 :(得分:4)

404错误将由连接到error属性的匿名函数处理。除了对URL的成功HTTP请求(即2xx)之外的任何内容都将触发错误方法。以下内容适用于您的目的:

error : function(jqXHR, textStatus, errorThrown) { 
    if(jqXHR.status == 404 || errorThrown == 'Not Found') 
    { 
        console.log('There was a 404 error.'); 
    }
}

当他们提到删除jQuery文档中的successerror函数时,它们指的是jqXHR类的函数,而不是$.ajax()的属性。