【求助】Creator2.0.0 网络接口BUG求助!

Creator 版本:2.0.0
使用模拟器
出错概率:100%

原本在1.9.0中稳定运行的网络模块在2.0中失效
出现问题的部分是XMLHttpRequest
代码如下:

properties: {
    word:cc.Label,
    word2:cc.Label,
},

// use this for initialization
onLoad: function () {
    this.network();
},

network:function(){
    var xhr = cc.loader.getXMLHttpRequest();
    //以下隐藏了部分url
    xhr.open("GET","http://*****************/queryAllUser/",true);
    if (cc.sys.isNative) {
        xhr.setRequestHeader("Accept-Encoding","gzip,deflate");
    }

    xhr.timeout = 5000;

    xhr.send();

    xhr.onreadystatechange = function(){
        cc.log(xhr.readyState);
        cc.log(xhr.status);
        if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)){
            var response = xhr.responseText;
            var obj = JSON.parse(response);
            this.word.string = xhr.readyState;
            this.word2.string = xhr.status;
        }
    }.bind(this);
},

在1.9.1版本中,运行结果是正常的

而2.0.0中,运行后onreadystatechange的函数完全没有被触发

希望官方能给出解决方案

以上

自顶一下

大佬们帮帮忙吧!!

尝试下这样:

var xhr = new XMLHttpRequest();
xhr.timeout = 5000;
xhr.ontimeout = function (e) {
cc.log(“time out”);
}
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
//自己的代码
}
};
xhr.open(“GET”, address, true);
xhr.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded; application/json; charset=utf-8”);
xhr.send();

address 换成你的地址, 开头 最好用new XMLHttpRequest(); 你的用的是cc.loader.getXMLHttpRequest(),可能cc换了api

你试试看,这是我以前可用的老代码

先 xhr.onreadystatechange(…) , 再 xhr.send()

1赞

在2.0.0版本里面,按照你的方法试了许多次,发现有成功的概率了,但是绝大多数情况会是这样子:

Simulator: In the constructor of HttpClient!
Simulator: D/jswrapper (128): JS: time out
Simulator: D/jswrapper (549): XMLHttpRequest_finalize, 092D99F8 …

就是没有触发onreadystatechange就出现了XMLHttpRequest_finalize
刚刚运行,立即就给了我time out的提示

后来运行了官方的2.0版本例程合集,get方法也是立刻出timeout

相对应的,1.9.1的例程完全可以正确运行

实在是不知道什么原因,还请各位大佬解答!:sob:

顶一下

我也是。httpGet 立马timeout

我用的post正常

是啊,用2.0做项目就卡在这里了

2.0里面POST是正常的,但是用GET就立刻timeout

可以试着把get换成post,官方还不知道啥时候修复

看到你们说的我都怕了,刚一个项目生到2.0,里面好多get请求…

我们验证了是 windows 平台和 windows 模拟器有问题,iOS / Android / Mac 都 ok,已经建立 issue 跟踪

1赞

那web平台呢,我一直用的是mac开发,果然没发现…