在Texture - Three.js中加载跨域图像

时间:2014-05-08 10:24:53

标签: three.js

我正在尝试使用THREE.ImageUtils.loadTexture(url)加载图片,但由于图片位于与托管的网页不同的域中,因此我收到以下错误:

Uncaught SecurityError:无法在'WebGLRenderingContext'上执行'texImage2D':

上的跨源图像

我在加载纹理之前添加了THREE.ImageUtils.crossOrigin = "anonymous",但后来我得到了错误:

来自“跨域域网址”的图像已被跨源资源共享策略阻止加载:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原始“托管网址”访问。

我也试过下面的代码:

var url = 'http://www.corsproxy.com/yourdomain/yourfolder/yourimage.png';    
            var image = document.createElement('img');
            image.crossOrigin = '';
            image.src = url;
            var texture = new THREE.Texture(image);
            texture.needsUpdate = true;
            material.map = texture; 

但由于我的代理被阻止,所以也无法通过这种方式加载跨域图像, 请让我知道如何在THREE.js纹理中加载跨域图像。我正在使用Three.js的66版..

1 个答案:

答案 0 :(得分:0)

由于javascript是客户端语言,因此不允许。您必须使用服务器端编码来访问跨域数据。

请参阅java open pdf file when it is being downloaded

http://www.mkyong.com/jquery/jquery-access-to-restricted-uri-denied-solution/