从jQuery 1.5开始,所有jQuery的AJAX方法都返回一个jqXHR
对象,该对象提供.error()
,.success()
和.complete()
方法。
.success()
和.complete()
之间的区别是什么?
答案 0 :(得分:218)
.success()
只有在您的网络服务器以200 OK
HTTP标头响应时才会被调用 - 基本上当一切都很好时。
然而,无论ajax调用是否成功,.complete()
都会总是被调用 - 可能输出错误并返回错误 - .complete()仍会被调用。
值得一提的是,.complete()
会在 .success()
被调用后被称为 - 如果它对你很重要。
答案 1 :(得分:9)
success()
,无论结果如何,始终在请求完成时调用complete()
。
答案 2 :(得分:0)
success()
,complete()
后调用success()
。我看到了一些不同之处:
在success()
上,您无法获取使用$.ajax()
并设置dataType:xml
的xml响应字符串
但是在complete()
中,你可以使用
$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})
答案 3 :(得分:0)
success()
时调用 success status code
,例如:200
,201
等。
complete()
。 (无论如何,这是服务器的成功/错误响应。)
success
响应时:complete()
并且调用success()
。error
响应时:complete()
并且调用error()
。出于什么目的,您可以使用complete()
:假设在beforeSend()
中显示了loader image
,而在complete()
中则可以隐藏loader image
。 / p>