多个快速异步ajax调用

时间:2015-10-15 21:40:20

标签: javascript ajax xmlhttprequest cross-domain jsonp

我想对另一个域上的服务器运行多个异步ajax调用(我使用jquery和jsonp进行X域调用)。当我不时拨打电话时,一切正常。但是,如果我使用不同的回调对不同的URL运行多个不同的调用,则所有调用都将中止(根据firebug)。下面的脚本可以很好地重现问题。我的apache服务器在http://domain.com:80

var urls=new Array();
urls.push("https://domain.com:9943/stuff?callback=fnReturn");
urls.push("https://domain.com:9943/stuff?callback=fnReturn2");
urls.push("https://domain.com:9943/stuff?callback=fnReturn3");
for(var i=0;i<urls.length;i++){
    uri = urls[i];
    var tmp=uri.split("=");
    jsonWrapperFunction=tmp[tmp.length-1];
    console.log("calling: "+uri);
    var xhr=$.ajax({
        crossDomain: true,
        type:"GET",
        contentType: "application/json",
        url: uri,
        timeout: 60000,
        success: function(response) {
                console.log("WORKING"+response);
        },
        error: function(xhr, status, error) {
                console.log("ERROR"+error);
        },
        dataType: "jsonp",
        jsonpCallback: jsonWrapperFunction
    });


}

当我在chrome上运行时,我收到以下错误: 获取https://domain.com:9943&callback=fnReturn&_=1444944920008 net :: ERR_EMPTY_RESPONSE 发送@jquery-1.11.2.min.js:4m.extend.ajax @jquery-1.11.2.min.js:4

在firefox中,请求立即中止。但是,如果我在调用之间放置一点暂停(睡眠),那么它们往往会起作用。

我的第一个想法是关于冲突的XMLHTTPRequest对象,但找不到任何关于如何使其工作的提示。

提前感谢您的指导。

0 个答案:

没有答案