例如:
static
答案 0 :(得分:2)
done()
方法很有用。因此,只有在Ajax调用A完成后,才能在done()
中执行后Ajax代码。虽然success()
主要是单个Ajax调用的一部分,但可以帮助您根据需要处理响应。
答案 1 :(得分:1)
success
仅在AJAX调用成功时触发,即最终返回HTTP 200状态。 error
如果失败则会触发,complete
会在请求完成时触发,无论成功与否。
在jqXHR
对象的jQuery 1.8中(由$.ajax
返回)success
正在替换为done
,error
替换为fail
,始终complete
。
但是,您仍然可以使用当前语法初始化AJAX请求。所以这些做类似的事情:
// set success action before making the request
$.ajax({
url: '...',
success: function(){
alert('AJAX successful');
}
});
// set success action just after starting the request
var jqxhr = $.ajax( "..." )
.done(function() { alert("success"); });
我认为此更改是为了与jQuery 1.5的新延迟对象兼容。
答案 2 :(得分:0)
您的代码格式不正确,但无论如何我都会试一试。
无论ajax请求是否成功,done()都会触发您的函数。
success()仅在您的ajax请求成功时触发您的函数。
答案 3 :(得分:0)
成功一直是jQuery中成功回调的传统名称,定义为ajax调用中的一个选项。但是,由于$ .Deferreds和更复杂的回调的实现,完成是实现成功回调的首选方法,因为它可以在任何延期的成功示例上调用
$.ajax({
url: '/',
success: function(data) {}
});
完成示例
$.ajax({url: '/'}).done(function(data) {});
完成的好处是$ .ajax的返回值现在是一个延迟的promise,可以绑定到应用程序中的任何其他位置。所以,假设你想从几个不同的地方进行这个ajax调用。而不是将您的成功函数作为执行此ajax调用的函数的选项传递,您可以让函数返回$ .ajax本身并将您的回调与done,fail,then或者其他任何东西绑定。请注意,无论请求成功还是失败,始终都会运行回调。完成只会在成功时触发。