我正在尝试在Three.js中为loadTexture使用本地图像,但出现以下错误:Uncaught SecurityError:无法在'WebGLRenderingContext'上执行'texImage2D':可能无法加载....上的跨源图像。
我有一个在Apache Tomcat(本地)上运行的Java应用程序,该应用程序使用以下URL为我的图像提供服务:http:// localhost:8084 / sve / img / wood-texture.jpg。
这是我尝试加载图像的JavaScript代码:
var woodTexture = new THREE.ImageUtils.loadTexture('http://localhost:8084/sve/img/wood-texture.jpg');
我正在使用Google Chrome浏览器(版本40.0.2214.111 m)运行Three.js程序。我也尝试像这样启动chrome:chrome.exe --allow-file-access-from-files。但是我得到了同样的错误。
有人对此有任何解决方案吗?
确保纹理与Three.js应用程序由同一台服务器提供服务是最容易的。
如果仍然需要它来自其他服务器(示例中其他端口上的Java应用程序),则需要使Java应用程序设置一些CORS标头。
例如: "Access-Control-Allow-Origin: *"
有关更多信息,请参见https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句