【发布时间】:2013-12-08 12:37:09
【问题描述】:
我的 Chrome 版本是 31.0.1650.57
我正在学习 THREE.js 并从https://github.com/jeromeetienne/threex.planets/下载了一个行星样本
但是当我运行 earth.html
正如标题所说,发生了一个奇怪的错误:
THREE.WebGLRenderer 59 three.min.js:424
Cross-origin image load denied by Cross-Origin Resource Sharing policy. earth.html:1
Uncaught SecurityError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': the canvas has been tainted by cross-origin data. threex.planets.js:73
(anonymous function) threex.planets.js:73
我查看了代码并找到了可能与此错误有关的内容:
THREEx.Planets.baseURL = '../'
...
map: THREE.ImageUtils.loadTexture(THREEx.Planets.baseURL+'images/earthmap1k.jpg'),
但我不知道如何解决它,我对 javascript 比较陌生,
希望有人能帮助我!
非常感谢!
【问题讨论】:
-
github.com/mrdoob/three.js/wiki/How-to-run-things-locally 这有帮助吗?您需要一个本地服务器来在本地运行纹理加载示例...
-
是的,我已经通过使用 Node.js 运行本地服务器解决了这个问题,非常感谢!
标签: javascript canvas three.js cross-domain cors