$ .ajax的错误选项与.fail()相同吗?

时间:2015-08-13 09:33:44

标签: jquery ajax

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

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

VS

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

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

2 个答案:

答案 0 :(得分:2)

是的,它们是一样的。

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

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

AJAX方法(.ajax().get()等)返回promises,它们具有这些方法。

一个例子:

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

您也可以链接方法调用。

答案 1 :(得分:0)

没有区别

jQuery.get()

它是一种速记Ajax函数,相当于:

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