调用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 } });
这两个选项是相同的。
但是,承诺风格的接口( .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()。