2014-05-18 181 views
0

如果你读的链接here for .ajax()他们说:jQuery AJAX:为什么.error()方法不推荐使用.fail()?

jqXHR.fail(函数(jqXHR,textStatus,errorThrown){});一个 错误回调选项的替代构造,.fail()方法 取代了已弃用的.error()方法。有关 实施细节,请参阅deferred.fail()。

为什么.error()方法赞成不赞成.fail()

+0

http://bugs.jquery.com/ticket/9399 – undefined

+0

对于所有参与切换到.done .always .fail的jQuerites,每个10分:-)。一旦你习惯了它,它会更容易,更光滑。 – TimSPQR

回答

2

这两个选项是等效的。

但是,承诺式接口(.fail()和.done())允许您将处理响应的代码与创建请求的代码分开。

您可以编写一个函数发送一个AJAX请求并返回jqXHR对象,然后在其他地方调用该函数并添加一个处理程序。

当与.pipe()函数结合,承诺式的界面还可以帮助做多个AJAX调用时减少嵌套:

$.ajax(...) 
    .pipe(function() { 
     return $.ajax(...); 
    }) 
    .pipe(function() { 
     return $.ajax(...); 
    }) 
    .pipe(function() { 
     return $.ajax(...); 
    }); 
0

这实际上是在谈论上deferred方法。这是说延迟对象曾经有一个错误的方法,但不推荐使用,因为在这种情况下失败更有意义。

ajax()调用返回的对象实现了承诺接口,因此您可以调用fail()和done()然后调用()。

在进行ajax调用之前,您还可以使用选项'error'来定义失败回调函数。请注意,这不是一个功能,而是一个选项。

相关问题