JQuery .post()ajax参数说明

时间:2014-05-15 16:33:29

标签: jquery ajax

我对用于进行ajax调用的JQuery .post()函数有疑问。问题出在下面的代码中:

$.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() {

        });

1 个答案:

答案 0 :(得分:1)

只有在请求被认为成功并且它们都将相同的参数传递给回调(data,textStatus,jqXHR)时,两者才会触发。唯一的区别是.done()附加在"承诺"样式并使用jQuery的Deferred Object实现,而另一个作为参数传递给$.post

您可能会认为.done()方法更灵活,因为您可以在其他地方返回或传递jQuery对象,从而允许其他代码添加.done()或其他延迟处理程序。也就是说,您仍然可以使用成功处理程序作为参数,然后再添加.done()。最后,.done()可以接受一系列回调,所有回调都将被执行,而success参数只接受一个函数。