我目前正在学习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.为什么它认为我从另一个域请求?
答案 0 :(得分:3)
解决方案是您必须位于本地Web服务器上,因为不会授予file:///域请求。 (Pointy提供的信息:
如果您从本地网络服务器提供这些内容,它将起作用,因为浏览器会将这些内容视为来自同一个域。 Chrome曾经有一个命令行选项允许它: - 允许文件访问文件,但我不知道它是否仍然有用
答案 1 :(得分:3)