繁体   English   中英

THREE.js中的跨域图片

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM