WebGL CORS:试图突破用户代理的安全策略。

时间:2013-11-19 02:37:51

标签: javascript html html5 cors

如何让跨源资源共享与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";已经处理过这个问题?

1 个答案:

答案 0 :(得分:1)

卫生署!原因是该属性区分大小写,实际上称为crossOrigin

res.crossOrigin = "anonymous";