如果你看到链接here for .ajax(),他们会说:
jqXHR.fail(function(jqXHR,textStatus,errorThrown){});一个 错误回调选项的替代构造,.fail()方法 替换已弃用的.error()方法。请参阅deferred.fail() 实施细节。
为什么弃用.error()
方法而不赞成.fail()
?
答案 0 :(得分:2)
这两个选项是等效的。
但是,promise样式接口(.fail()和.done())允许您将创建请求的代码与处理响应的代码分开。
您可以编写一个发送AJAX请求并返回jqXHR对象的函数,然后在其他地方调用该函数并添加一个处理程序。
当与.pipe()函数结合使用时,promise样式接口还可以在进行多个AJAX调用时帮助减少嵌套:
$.ajax(...)
.pipe(function() {
return $.ajax(...);
})
.pipe(function() {
return $.ajax(...);
})
.pipe(function() {
return $.ajax(...);
});
答案 1 :(得分:0)
这实际上是在讨论deferred上的方法。它说延迟对象曾经有过一个错误方法,但是因为失败在那个环境中更有意义而被弃用了。
ajax()调用返回的对象实现了一个promise接口,因此你可以调用fail()和done()然后调用()。
你也可以使用选项'错误'在进行ajax调用之前定义故障回调函数。请注意,这不是一个功能,而是一个选项。