AJAX:错误(已弃用!)有效但失败则无效。为什么?

时间:2015-05-19 20:19:29

标签: javascript jquery ajax

我有一个带AJAX调用的JavaScript。它们看起来像这样:

                    $.ajax({
                        type: "GET",
                        data: "query_parameters",
                        url: "/some_uri",
                        error: function(data) {
                            error_code;
                        },
                        fail: function(data) {
                            error_code;
                        },
                        success: function(answ) {
                            success_code;
                        }
                    });

首先,这些调用仅包含 fail:定义,但是当我尝试返回错误代码(401:Unauthorized)时,未调用该代码。然而,一旦我添加错误:,它就开始工作了。我不是JavaScript专家 - 实际上更像是菜鸟 - 但我已经读过错误:现在已被弃用且失败:必须使用。这种奇怪行为的原因是什么?我的jquery是1.10.2。

2 个答案:

答案 0 :(得分:6)

您将settings参数中的选项与可用于类似目的的jqXHR方法混淆。不推荐jqXHR.error()方法支持jqXHR.fail()。如果您想使用jqXHR样式,请写下:

$.ajax({
    type: "GET",
    data: "query_parameters",
    url: "/some_uri"
}).fail(function(data) {
    // error code
}).done(function (answ) {
    // success code
});

没有fail:选项。这一直被称为error:,现在仍然如此。它没有被弃用。

答案 1 :(得分:1)

使用延期。不推荐使用error回调。您更新的代码如下所示:

$.ajax({
    type: "GET",
    data: "query_parameters",
    url: "/some_uri",
})
.done(function(data) {
    // When the request is done.
    // Handle data
})
.fail(function() {
    // Handle the errors
});