弃用通知:jqXHR.success(),jqXHR.error()和 在jQuery 1.8中不推荐使用jqXHR.complete()回调函数。至 为最终删除代码做好准备,使用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');
}
});
答案 0 :(得分:4)
例如,如果你有以下任何一个:
$.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');
});
答案 1 :(得分:2)
我知道这是一个老问题,而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 documentation。您只需要分别重命名为done()
,fail()
和always()
,或按照我的第一个代码块来重写代码。