我想实现多个ajax发布请求.假设有3个帖子.然后,第二个帖子取决于第一个帖子的结果,而第三个帖子则取决于从第二个帖子收到的结果.
我如何放置第二个ajax发布方法.应该在成功处理程序中完成吗
jQuery.ajax({
类型:“发布”,
dataType:“ json”,
url:ajaxurl,
数据:form_data,
async: false,
success: function(response) {
//2nd ajax post call to be placed here?
}
}
})
//或应该在第二个ajax发布调用之后放置
我见过有人也在使用jQuery.when(),但不确定是否可以使用它.
从这里开始,我将不得不检查何时条件3次.
提前致谢.
解决方法:
像这样吗
从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
});