23

我有这个代码:

$.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 呢?

4

2 回答 2

37

按如下方式替换您的错误函数...

error:function (xhr, ajaxOptions, thrownError){
    if(xhr.status==404) {
        alert(thrownError);
    }
}
于 2012-06-07T12:04:19.923 回答
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().

于 2012-06-07T12:04:15.993 回答