我正在尝试使用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版..
答案 0 :(得分:0)
由于javascript是客户端语言,因此不允许。您必须使用服务器端编码来访问跨域数据。
请参阅java open pdf file when it is being downloaded
http://www.mkyong.com/jquery/jquery-access-to-restricted-uri-denied-solution/