有人能告诉我这两个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
选项之间。感谢任何建议,谢谢。
答案 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)
没有区别
它是一种速记Ajax函数,相当于:
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});