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