我想实现多个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次。
先谢谢。
答案 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
});