[英]Cross domain image in THREE.js
我在app.domain.com上有一个应用程序,我想从image1.domain.com,image2.domain.com等加载一些图像作为纹理。
我正在使用此代码:
var texture = new THREE.Texture();
var image = new Image();
image.crossOrigin = 'anonymous';
image.onload = function() {
texture.image = image;
texture.needsUpdate = true;
texture.minFilter = THREE.LinearFilter;
};
image.src = url;
在我的图像响应标头上,我具有Access-Control-Allow-Origin:app.domain.com
但仍然收到此错误
three.js?201606101337:30942 DOMException:无法在“ WebGLRenderingContext”上执行“ texImage2D”:可能无法加载url上的跨域图像。
为什么不使用Texture Loader ? 它可能处理一些边缘情况:
var loader=new THREE.TextureLoader();
loader.setCrossOrigin("anonymous");
loader.load(
url,
function do_something_with_texture(tex) { }
);
如果不起作用,请尝试将标头更改为Access-Control-Allow-Origin: *
。
另外,请注意,CORS在Safari(OSX,iOS浏览器和Web视图)中不能很好地工作。
这对我有用
var loader = new THREE.TextureLoader();
loader.setCrossOrigin("");
var map = textureLoader.load("image.png");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.