我最近在jQuery网站上看到了一个反对意见的通知。
弃用通知: jqXHR.success()、jqXHR.error()和jqXHR.complete()回调将在jQuery 1.8中废弃。要准备代码以便最终删除,请使用jqXHR.done()、jqXHR.fail()和jqXHR.always()。
我目前正在编码如下:
$.ajax({
url: '...',
success: function(){
alert('AJAX successful');
}
});我计划使用jQuery 1.8+
我是否应该将success密钥更改为done,如:
$.ajax({
url: '...',
done: function(){
alert('AJAX successful');
}
});发布于 2013-07-17 11:07:27
例如,如果您有以下任何一个:
$.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');
});发布于 2018-10-11 14:35:04
我知道这是个老问题,jQuery 1.8早在很久以前就出现了--但是为了帮助像我这样正在将古老的应用程序升级到3.0的谷歌人,我想我应该提出澄清。
这在版本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(),或者按照我的第一个代码块重写代码。
https://stackoverflow.com/questions/17698060
复制相似问题