如何通过ajax在多个网址中发送数据

时间:2015-03-14 10:01:47

标签: javascript jquery ajax

对于我的脚本,我希望url's多个ajax发送一些数据,以进行多个php查询。所以我尝试如下,不要调用ajax waitForRep()。怎么办呢?

我的Javascript:

var url = ['/server/server2','/server/server'];
var tutid = '<?php echo $tutid; ?>';
var CID = '<?php echo $id; ?>';

function waitForRep(){
    $.each(url, function(i,u){
        $.ajax({
            type: "GET",
            cache: false,
            data: {
            tutid : tutid,
            CID : CID
        },
            timeout:15000, 
            success: function(data){ 
                // do something with result
                setTimeout(waitForRep, 15000 );
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                setTimeout(waitForRep, 15000); 
            }
        });
    }
}

$(document).ready(function(){
    waitForRep();
});

2 个答案:

答案 0 :(得分:0)

您的问题出在setTimeOut。看起来你试图两次调用ajax。

如果要在成功时调用第二个ajax,则无需遍历数组。只需在第一次ajax成功时调用另一个ajax。

摆脱$.each并按照以下方式行事:

$.ajax ({
  url: link1
  success: function (data){
    $.ajax ({
      url: link2
     });
  });
)};

答案 1 :(得分:0)

如果您要向多个网址发送多个请求:只需通过相同的requestparams发送每个网址...

但是如果您想在发送所有请求后处理回复,我想到的第一个想法是Promise,我尝试使用原生Promise和https://v4-alpha.getbootstrap.com/getting-started/options/,但如果您愿意{{1}我建议您查看it worked,这可能就是您要查找的内容(查看延期部分)。