如果你读的链接here for .ajax()他们说:jQuery AJAX:为什么.error()方法不推荐使用.fail()?
jqXHR.fail(函数(jqXHR,textStatus,errorThrown){});一个 错误回调选项的替代构造,.fail()方法 取代了已弃用的.error()方法。有关 实施细节,请参阅deferred.fail()。
为什么.error()
方法赞成不赞成.fail()
?
如果你读的链接here for .ajax()他们说:jQuery AJAX:为什么.error()方法不推荐使用.fail()?
jqXHR.fail(函数(jqXHR,textStatus,errorThrown){});一个 错误回调选项的替代构造,.fail()方法 取代了已弃用的.error()方法。有关 实施细节,请参阅deferred.fail()。
为什么.error()
方法赞成不赞成.fail()
?
这两个选项是等效的。
但是,承诺式接口(.fail()和.done())允许您将处理响应的代码与创建请求的代码分开。
您可以编写一个函数发送一个AJAX请求并返回jqXHR对象,然后在其他地方调用该函数并添加一个处理程序。
当与.pipe()函数结合,承诺式的界面还可以帮助做多个AJAX调用时减少嵌套:
$.ajax(...)
.pipe(function() {
return $.ajax(...);
})
.pipe(function() {
return $.ajax(...);
})
.pipe(function() {
return $.ajax(...);
});
这实际上是在谈论上deferred方法。这是说延迟对象曾经有一个错误的方法,但不推荐使用,因为在这种情况下失败更有意义。
ajax()调用返回的对象实现了承诺接口,因此您可以调用fail()和done()然后调用()。
在进行ajax调用之前,您还可以使用选项'error'来定义失败回调函数。请注意,这不是一个功能,而是一个选项。
http://bugs.jquery.com/ticket/9399 – undefined
对于所有参与切换到.done .always .fail的jQuerites,每个10分:-)。一旦你习惯了它,它会更容易,更光滑。 – TimSPQR