如何让跨源资源共享与WebGL纹理一起正常工作?我想我已经采取了我需要的所有步骤。
图片位于http://localhost:15555/imgbuttons/nexthand.png
。
JavaScript代码是:
var res = new Image();
res.crossorigin = "anonymous";
res.onload = function () {
if (ondone) {
var tex = new cc.Texture2D();
tex.initWithElement(res);
tex.handleLoadedTexture();
ondone(tex);
}
res = null;
};
res.src = "http://localhost:15555/imgbuttons/nexthand.png";
.handleLoadedTexture()
在以下行中失败的地方:
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._htmlElementObj);
this._htmlElementObj
是前面提到的Image
。
服务器使用以下响应标头发送图像:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Methods:GET
Access-Control-Allow-Origin:*
这不应该是all the required ingredients吗?我错过了什么?
我注意到请求标头中的Origin: null
不是。也许这就是问题,但我不确定为什么不是 - 不应该res.crossorigin = "anonymous";
已经处理过这个问题?
答案 0 :(得分:1)
卫生署!原因是该属性区分大小写,实际上称为crossOrigin
:
res.crossOrigin = "anonymous";