2011-03-09 64 views
93

從jQuery 1.5開始,所有jQuery的AJAX方法都返回一個jqXHR對象,該對象提供了.error(),.success().complete()方法。.success()和.complete()之間的區別?

.success().complete()有什麼區別?

+2

@nix得到readed XML文檔的字符串格式你有一個鏈接,更詳細地描述了棄用的東西? – neoneye 2012-05-02 14:34:02

+0

@neoneye Ctrl + F「棄用通知」on api.jquery.com/jQuery.ajax/ – ThatGuy 2012-05-18 17:37:09

+3

http://i.stack.imgur.com/JogVo.png – 2014-02-02 00:21:15

回答

207

.success()只有當您的網絡服務器響應200 OK HTTP標頭時纔會調用 - 基本上當一切正常時。

然而,.complete()總是被調用無論Ajax調用是成功還是失敗 - 也許它輸出的錯誤,並返回一個錯誤 - .complete()仍然會被調用。

值得一提的是,.complete()將調用.success()被調用 - 如果對你很重要。

9

success()當服務器返回200個狀態碼被調用時,complete()被稱爲總是當請求完成後,不管結果如何。

0

success()當服務器回狀態代碼,complete()success()後調用調用。我看到一些區別:

success()你不能讓你得到使用$.ajax()並設置XML響應字符串dataType:xmlcomplete()您可以使用

$.ajax({ 
url:'??', 
dataType:'xml', 
oncomplete: function(data,status){ 
console.log(data.responseText); 
} 
}) 
相關問題