调用jquery ajax – .fail vs.:error

我应该使用哪一个?

有没有任何理由使用一个,而不是另一个?

是一个更好的error handling?

$.ajax({ url: url, data: { start: start, end: end } }).done(function(data, textStatus, jqXHR) { $('#myElement').append(data); }).fail(function() { // report error }); 

要么

 $.ajax({ url: url, data: { start: start, end: end }, success: function(data, textStatus, jqXHR) { $('#myElement').append(data); }, error: function(jqXHR, textStatus, errorThrown) { // report error } }); 

2 Solutions collect form web for “调用jquery ajax – .fail vs.:error”

这两个选项是相同的。

但是,承诺风格的接口( .fail().done() )允许您从处理响应的代码中分离创build请求的代码。

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

当与.pipe()函数结合使用时,在进行多个AJAX调用时,promise风格的接口也可以帮助减less嵌套:

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

只是为了清新这个…

从jQuery 1.8开始,成功和错误的方法已经被弃用了。

jQuery的Ajax

弃用通知:自jQuery 1.8起,弃用jqXHR.success(),jqXHR.error()和jqXHR.complete()callback。 要准备好代码以便最终删除它们,请改用jqXHR.done(),jqXHR.fail()和jqXHR.always()。

  • 强制使用Javascript下载图像
  • Bootstrap 3.0 Popovers和工具提示
  • jquery Ajaxerror handling忽略中止
  • jQuery.trigger('click')不起作用
  • 在Javascript生成的表的顶部添加一行
  • 我如何检查一个jQuery元素是否在DOM中?
  • jQuery /以编程方式在select框中select一个选项
  • 如何保留页面重新加载jqGrid中的searchfilter?
  • 在使用jQuery之后select和操作CSS伪元素,如:: before和::
  • jQuery和“有组织的代码”
  • 使用Javascript或jQuery将元素写入子iframe