多个Ajax帖子以串行方式发布

时间:2014-03-03 07:45:36

标签: javascript php jquery ajax

我想实现多个ajax post请求。假设有3个帖子。然后第二篇文章取决于第一篇文章的结果,第三篇文章取决于第二篇文章收到的结果。

如何放置第二个ajax post方法。应该在成功处理程序中完成    jQuery.ajax({        类型:“post”,        dataType:“json”,        url:ajaxurl,        data:form_data,

   async: false,  
   success: function(response) {
              //2nd ajax post call to be placed here?

      } 
  }       

})   

//或者应该在

之后放置第二个ajax帖子

我见过一些人也在使用jQuery.when(),但我不确定是否可以使用它。 从这里起,我将不得不检查条件3次。

先谢谢。

1 个答案:

答案 0 :(得分:4)

这样的东西?

来自https://api.jquery.com/jQuery.when/

$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ).done(function( a1, a2 ) {
  // a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively.
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
  var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It"
  if ( /Whip It/.test( data ) ) {
    alert( "We got what we came for!" );
  }
});

a1,a2是从各种回调中返回的结果? (但是这将执行你的三个回调(异步),但返回所有三个的结果)

否则,如果你有一个从request1到request2的依赖,你可以做这样的事情https://api.jquery.com/jQuery.ajax/

$.ajax("page1.php").done(function(a1) {
    if (a1 == "something") { // if 2nd call dependent on results from 1st
        $.ajax("page2.php").done(function(a2) {
        }).fail(function() {
            // handle with grace
        });
    }
}).fail(function() {
    // handle with grace
});