【问题标题】:Is $.ajax's error option the same as .fail()?$.ajax 的错误选项和 .fail() 一样吗?
【发布时间】:2015-11-06 04:50:09
【问题描述】:

谁能告诉我这两个 jquery 调用之间是否有任何区别?

$.get("/foo", function (data, textStatus, jqXHR) {
    doThingA()
}).fail(function () {
    doThingB()
});

对

$.ajax({
    url: "/foo",
    success: function (data, textStatus, jqXHR) {
        doThingA()
    },
    error: function () {
        doThingB()
    }
});

我正在重构一些代码,只是想知道这两个是否完全相同。我认为如果有区别,最有可能在fail() 和error 选项之间。感谢您的任何建议,谢谢。

【问题讨论】:

  • 是的。它们是一样的。
  • @Max Williams 据我所知,它的含义似乎相同,在这里您也可以看到 stackoverflow.com/questions/4062317/…
  • 这是一个可以通过查看文档完全回答的问题。你为什么不呢?
  • @Tomalak 有时文档不会提到微妙的陷阱,这些陷阱只能从 StackOverflow 社区的集体智慧中收集。
  • @MaxWilliams 有时,但不是在这种情况下,您接受的答案只会引用文档。你本可以自己达到那个水平的知识。

标签: jquery ajax


【解决方案1】:

是的,它们是一样的。

http://api.jquery.com/jquery.ajax/#entry-longdesc

  • jqXHR.done(function( data, textStatus, jqXHR ) {}); 成功回调选项的替代构造,[...]
  • jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {}); 错误回调选项的替代构造,[...]

AJAX 方法(.ajax()、.get() 等)返回带有这些方法的 Promise。

一个例子:

var promise = $.get("/api/user/" + userid);
promise.done(function () { /* ... */ });
promise.fail(function () { /* ... */ });
promise.always(function () { /* ... */ });

您还可以链接方法调用。

【讨论】:

    【解决方案2】:

    没有区别

    jQuery.get()

    是一个简写的Ajax函数,相当于:

    $.ajax({
     url: url,
     data: data,
     success: success,
     dataType: dataType
    });
    

    【讨论】:

    • 我问的是.fail() 部分。
    猜你喜欢
    • 2022-11-22
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 2016-11-06
    相关资源
    最近更新 更多