我可以在ajax响应中发出jquery ajax请求吗?

时间:2011-01-28 18:26:09

标签: jquery

我想根据我的ajax调用的响应进行几次ajax调用

类似这样的事情

$.post('test1.php', function(res) {

    var processid = res.processid;

    $.post('test2.php', id : processid, function (data){

        // do some stuff and make other ajax calls
    });

},'json')

这是对的吗?我需要根据每个请求的响应提出额外的请求。

谢谢

1 个答案:

答案 0 :(得分:1)

是的,这是正确的。第二个POST将在第一个完成后运行。

或者,您可以使用jQuery的$.queue$.dequeue建立队列,并使用$.data存储变量。您也可以使用AJAX Queue插件(谷歌为他们),我不使用任何,所以我不能建议。

//Add POST 1
$(document).queue('AJAX', function(next){
    $.post('test1.php', function(res){
        $(document).data('processid', res.processid); //We need to store this somewhere
        next(); //Call next queued function (if any)
    }, 'json');
});

//Add POST 2
$(document).queue('AJAX', function(next){
  $.post('test2.php', 'id='+$(document).data('processid'), function (data){
    next(); //Call next queued function (if any)
  });
});

// Start the queue
$(document).dequeue('AJAX');