2014-05-15 51 views
0

我有一個關於JQuery .post()函數用於進行ajax調用的問題。現在的問題是在下面的代碼:JQuery .post()ajax參數說明

$.post("processOrder", $("#OrderForm").serialize(), function() { 
      // What is the diff between putting code here.... 
     }) 
      .done(function(data) { 

       // ... and putting it in the "done" instead ?.... 

       }) 
      .fail(function() { 

       }) 
      .always(function() { 

     }); 
+0

請參閱http://stackoverflow.com/a/14754681/1049184和http://stackoverflow.com/questions/8847829 – PeterKA

回答

1

兩個只會火如果請求被認爲是成功的,他們都通過相同的參數給回調(數據,textStatus,jqXHR)。唯一的區別是.done()以「promise」風格附加,並使用jQuery的Deferred Object實現,而另一個作爲參數傳遞給$.post

您可能會認爲.done()方法更靈活,因爲您可以返回或傳遞jQuery對象,允許其他代碼添加.done()或其他延遲處理程序。也就是說,您仍然可以使用成功處理程序作爲參數,然後再添加.done()。最後,.done()可以接受一個回調數組,而所有這些回調都將被執行,而success參數只接受一個函數。