弃用注意:jQuery 1.8中不推荐使用jqXHR.success(),jqXHR.error()和jqXHR.complete()回调.要准备最终删除的代码,请使用jqXHR.done(),jqXHR.fail()和jqXHR.always().
我目前编码如下:
$.ajax({
url: '...',
success: function(){
alert('AJAX successful');
}
});
Run Code Online (Sandbox Code Playgroud)
我打算使用jQuery 1.8+
我应该将success
密钥更改done
为:
$.ajax({
url: '...',
done: function(){
alert('AJAX successful');
}
});
Run Code Online (Sandbox Code Playgroud)
?
例如,如果您具有以下任何一项:
$.ajax({url: '...'}).success(function(){
alert('AJAX successful');
});
$.ajax({url: '...'}).error(function(){
alert('AJAX ERROR');
});
$.ajax({url: '...'}).complete(function(){
alert('AJAX complete');
});
Run Code Online (Sandbox Code Playgroud)
您必须将其更改为:
$.ajax({url: '...'}).done(function(){
alert('AJAX successful');
});
$.ajax({url: '...'}).fail(function(){
alert('AJAX ERROR');
});
$.ajax({url: '...'}).always(function(){
alert('AJAX complete');
});
Run Code Online (Sandbox Code Playgroud)
我知道这是一个老问题,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);
}
});
Run Code Online (Sandbox Code Playgroud)
这在 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
});
Run Code Online (Sandbox Code Playgroud)
请参阅 @DevIshOne 的答案或jQuery AJAX 文档,了解如何解释这一点。您只需分别重命名为done()
、fail()
、 和always()
,或者按照我的第一个代码块重写代码。