在纹理中加载跨域图像

时间:2016-04-27 07:51:06

标签: three.js

如何在textureloader中加载跨域图像,并在“WebGLRenderingContext”上获取“无法执行'texImage2D':跨源......”错误

var loader = new THREE.TextureLoader();
loader.load('http://myurl.com/img/box.png', onTextureLoaded);

1 个答案:

答案 0 :(得分:1)

第一个选项

向资产添加CORS标头,允许跨域请求:

Access-Control-Allow-Origin: *

第二个选项

您可以创建服务器端代理,然后像这样加载资产

loader.load('myproxy?url=http://myurl.com/img/box.png', onTextureLoaded);

然而,您需要小心,因为代理可能会占用大量带宽,因此您在设置时需要非常彻底,以免意外打开服务器进行某些代码注入攻击。