我收到了一个来自先前问题的建议,我需要一起修改我的代码链一系列 POST 请求,但我不知道如何完成此操作。具体来说,我得到的建议是:
触发一个帖子,让其成功处理程序触发下一个帖子,等等......然后当所有帖子完成后,最后一个帖子的成功处理程序触发 get
这个策略对我来说很有意义,但我不知道如何实施。我试图在所有对 POST 的调用完成之前阻止对 GET 的调用。目前,我已经实现$.when.apply
了延迟 GET 的发送。这是代码:
function(){
$.when.apply(undefined, InsertTheAPPs()).done(function () {
$.ajax({
url: sURL + "fileappeal/send_apps_email",
success: function() {
var m = $.msg("my message",
{header:'my header', live:10000});
setTimeout(function(){
if(m)m.setBody('...my other message.');
},3000);
setTimeout(function(){
if(m)m.close(function(){
window.location.replace(sURL+'client/view');
});
},6000);
$('#ajaxShield').fadeOut(1000);},
error: function(){
$.msg("error message",
{header:'error header', live:10000});
}
});
});
}
这是 jQuery $.each 循环的代码。这是不仅需要开始,而且必须在上面对 fileappeal/send_apps_email 的 ajax 调用之前结束的代码:
function InsertTheAPPs(){
$('input[name=c_maybe].c_box').each(function(){
var jqxhrs = [];
if($(this).prop('checked')){
var rn = $(this).prop('value');
jqxhrs.push(
$.ajax({
url: sURL + 'fileappeal/insert_app',
type:"POST",
dataType: 'text',
data: {'rn': rn},
error: function(data) {console.log('Error:'+rn+'_'+data);}
})
)
return jqxhrs;
}
});
}
有人可以演示我如何修改上面的代码以实现将多个 POST 调用链接在一起的策略吗?