如何逐个执行ajax请求

时间:2014-04-15 10:47:40

标签: jquery ajax

我遇到了无法解决的问题。部分是因为我无法用正确的术语来解释它。我是新手,对这个笨拙的问题感到抱歉。

您可以在下面看到我的目标概述。

这是我的脚本结构..&工作正常

<script>
    $(document).ready(function(){
        applyScript();
        var jqueryarray = <?php echo json_encode($array); ?>;
        for (i = 0; i < jqueryarray.length; i++) {
             // my logic is here
             try {
                $.ajax({
                   url: url1,
                   cache:  false ,
                   type : 'POST',
                   // dataType: "json",
                   data: data1,
                   success: function(response){
                      if (response) {
                         // some logic with response
                      }
                   }
                });
             }catch (e) { }
        };
    });
</script>

这里基于for循环工作ajax发送请求但我的目标是我要一个接一个地发送ajax请求。

你可以在这里看到我的概率

enter image description here

任何想法?

2 个答案:

答案 0 :(得分:6)

创建一个类似递归的函数,在完成一个ajax请求后调用,如下所示:

   $(document).ready(function(){
    applyScript();
    var jqueryarray = <?php echo json_encode($array); ?>;
    var $i = 0; 
    ajax_forloop( $i );
   });
    function ajax_forloop( $i )
    {
         // my logic is here
         try {
            $.ajax({
               url: url1,
               cache:  false ,
               type : 'POST',
               // dataType: "json",
               data: data1,
               success: function(response){
                  if (response) {
                     // some logic with response


                     //call another ajax request
                     $i++;
                     if( $i < jqueryarray.length ) 
                     {
                         ajax_forloop( $i );  
                     }

                  }
               }
            });
         }catch (e) { }

    }

答案 1 :(得分:2)

在您的情况下异步发送的Ajax请求。如果我正确理解你(你想在第一次comlpeted之后发布第二个ajax请求?),你应该在第一个ajax的成功(或错误)处理程序中调用第二个ajax。