[]httpRequest send返回Request failed Status:0

在本机环境下的例子中 可以正常显示图片
此图片是在玩一玩处取排行榜时返回的用户头像URL 代码如下
var WebGL = Laya.WebGL;
// 程序入口
var GameMain = /** @class */ (function () {
function GameMain() {
//初始化引擎
Laya.init(1136, 640);
for (var i = 0; i < 4; i++) {
var sp = new Laya.Sprite();
var xhr = new Laya.HttpRequest();
var url = "http://thirdqq.qlogo.cn/g%3Fb% ... 3B%3B
xhr.once(Laya.Event.COMPLETE, this, this.completeHandler, [url, 1]);
xhr.once(Laya.Event.ERROR, this, this.errorHandler);
xhr.send(url, "", "get", "arraybuffer");
}
}
GameMain.prototype.completeHandler = function (URL, id, data) {
// private completeHandler(data: Object, URL: string, id: number): void {
//加载完成返回的data是arraybuffer;
//......这里处理我们加密的图片数据,假设我们的图片加密数据是在图片的前面写入了四个字节的数据
//......解密逻辑开始处理数据
var byte = new Laya.Byte(data); //Byte数组接收arraybuffer
// byte.writeArrayBuffer(data,4);//从第四个字节开始读取数据
var blob = new Laya.Browser.window.Blob([byte.buffer], { type: "image/png" });
var url = Laya.Browser.window.URL.createObjectURL(blob); //创建一个url对象;
//我们先用第一种方式显示图片到舞台
var sp = new Laya.Sprite();
sp.loadImage(url);
Laya.stage.addChild(sp); //添加到舞台
};
GameMain.prototype.errorHandler = function (e) {
};
return GameMain;
}());
new GameMain();
//# sourceMappingURL=LayaSample.js.map


但运行在玩一玩平台下调用相同代码则返回Request failed Status:0
求解
已邀请:

Aar0n

赞同来自:

服务器是开在本机的吗?有没有跨域的情况?

Aar0n

赞同来自:

浏览器对于javascript的同源策略的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和b.cn是不同域),所以跨域就出现了.
你本地跑通是没问题的, 因为没有跨域,在玩一玩上跑就可能有跨域问题。
 
解决跨域的帖子http://ask.layabox.com/question/13​ 。

要回复问题请先

商务合作
商务合作