我目前正在学习WebGL。在对 texImage2D 的调用(纹理加载完成时调用)中,我得到以下信息SecurityError
:
Uncaught SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at /path/to/texure.png may not be loaded.
但是,该文件位于同一域中,实际上它与请求它的 html 文件位于同一目录中。
这是文件布局:
> js
|-> script.js
|-> glUtils.js
|-> sylvester.js
> texture.png
> index.html
当我查看 F12 控制台的资源列表时,图像texture.png
在那里,完全加载,并且它是 256 x 256。为什么它认为我正在从另一个域请求?
解决方案是您必须位于本地网络服务器上,因为 file:/// 域请求将不会被授予。 (Pointy提供的信息:
如果您从本地网络服务器提供这些内容,它就会起作用,因为浏览器会将它们视为来自同一域。 Chrome 曾经有一个命令行选项来允许它: --allow-file-access-from-files 但我不知道它是否仍然有效
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)