XMLHttpRequest循环重复请求模拟器自动关闭

大家好,才开始接触XMLHttpRequest不是特别熟练下面是我的代码,我通过循环的请求把一些数据放在一个大的对象里,

 getDate: function(){
        //var xmlhttp=new XMLHttpRequest();
        var xmlhttp = cc.loader.getXMLHttpRequest();
        var num = 0;
        if (xmlhttp!==null){
            for(var i in com.data)// com.data包含我需要的数据的Key
            {
                var url = "https://www.XXXXt/coin/"+com.data[i];  
                xmlhttp.open("GET",url,true);
                xmlhttp.send(null);//发送
                xmlhttp.onreadystatechange=function state_Change(){
                    if (xmlhttp.readyState==4){
                        if (xmlhttp.status==200){
                            com.jsonobj[num] = JSON.parse(xmlhttp.responseText); //com.jsonobj[num]是我的目标数据集合
                            cc.log("币名:"+com.jsonobj[num].name);
                        }
                    }
                };
                num++;  
            }
            //xmlhttp.abort();
        }else{
            cc.log("连接创建失败");
        }
    },

代码就是上面了,数据没问题收的到,但是收完会立马自动关闭模拟器,浏览器没影响,之前测试不用循环之一条数据就没有问题,请教下这是什么问题导致的?

我自己找到问题了,这个XMLHttpRequest还真有脾气,我上边的循环请求com.data数据共36个网址,他会优先把36个网址都send一遍,之后在xmlhttp.onreadystatechange循环这个,太恶心了。我后来改成这样就好了。
onLoad: function () {
for(var i in com.data) {
this.getDate(i);
}

getDate:function(key)
{
var xmlhttp=new XMLHttpRequest();
if (xmlhttp!==null){
var url = “https://www.xxxx/coin/”+com.data[key].toLocaleLowerCase();
xmlhttp.open(“GET”,url,true);
xmlhttp.send(null);
xmlhttp.onreadystatechange=function state_Change(){
if (xmlhttp.readyState==4){
if (xmlhttp.status==200){
com.jsonobj[key] = JSON.parse(xmlhttp.responseText);
cc.log(“币名:”+com.jsonobj[key].name);
}
}
}
}else{
cc.log(“连接创建失败”);
}
//xmlhttp.abort();
},

不应该用同一个xmlhttp同时进行open和send。应该每次循环构建一个新的xmlhttp。

let num = 0;
for (var i in com.data)
{
    let xmlhttp = cc.loader.getXMLHttpRequest();
    let url = "https://www.XXXXt/coin/"+com.data[i];
    xmlhttp.open("GET",url,true);
    ...
}

这样是不行的,我试过了,大概便利十几个数据模拟器就关了,XMLHttpRequest对象是可以复用的