2014-05-15 57 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参数只接受一个函数。