jQuery弃用通知jqxhr.success()

我最近在jQuery网站上看到了弃用通知。

弃用注意:jQuery 1.8中不推荐使用jqXHR.success(),jqXHR.error()和jqXHR.complete()回调。 要准备最终删除的代码,请改用jqXHR.done(),jqXHR.fail()和jqXHR.always()。


我目前的编码如下:

$.ajax({ url: '...', success: function(){ alert('AJAX successful'); } }); 

我打算使用jQuery 1.8+

我应该将success密钥更改为:

 $.ajax({ url: '...', done: function(){ alert('AJAX successful'); } }); 

例如,如果你有以下任何一个:

 $.ajax({url: '...'}).success(function(){ alert('AJAX successful'); }); $.ajax({url: '...'}).error(function(){ alert('AJAX ERROR'); }); $.ajax({url: '...'}).complete(function(){ alert('AJAX complete'); }); 

您必须将其更改为:

 $.ajax({url: '...'}).done(function(){ alert('AJAX successful'); }); $.ajax({url: '...'}).fail(function(){ alert('AJAX ERROR'); }); $.ajax({url: '...'}).always(function(){ alert('AJAX complete'); }); 

我知道这是一个老问题,jQuery 1.8很久以前就出现了 – 但是为了帮助像我一样将古老的应用程序升级到3.0的Google员工,我想我会想要澄清一下。

这在jQuery 1.8+版本中有效:

 $.ajax({ url: "/api/endpoint", type: "POST", data: myData, success: function(json){ console.log("success"); console.log(json); error: function(jqxhr){ console.log("failure"); console.log(jqxhr.responseText); } }); 

这在jQuery 1.8+版本中无效。 它已在3.0中删除:

 var promise = $.ajax({ url: "/api/endpoint", data: myData, method: "POST" }); promise.success(function(json){ console.log("function not defined!"); // same for .error and .complete }); 

有关如何解释此问题,请参阅@ DevIshOne的答案或jQuery AJAX文档 。 您只需要分别重命名为done()fail()always() ,或者按照我的第一个代码块重写代码。