Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 纹理不加载;报告同源安全性错误的浏览器_Javascript_Three.js - Fatal编程技术网

Javascript 纹理不加载;报告同源安全性错误的浏览器

Javascript 纹理不加载;报告同源安全性错误的浏览器,javascript,three.js,Javascript,Three.js,我正在尝试使用一些教程学习一些three.js,但在尝试使用纹理时,我不断遇到以下错误: Uncaught SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at [any path here] may not be loaded. 我使用的代码来自此演示: 文件如下: 我用同样的纹理在本地运行同样的代码,得到了我提到的错误。然后我在XAMPP服务

我正在尝试使用一些教程学习一些three.js,但在尝试使用纹理时,我不断遇到以下错误:

Uncaught SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at [any path here] may not be loaded.
我使用的代码来自此演示:

文件如下:

我用同样的纹理在本地运行同样的代码,得到了我提到的错误。然后我在XAMPP服务器打开(加载了Apache和MySQL模块)和/htdocs/文件夹中的文件的情况下运行了相同的代码。我仍然会犯同样的错误

我在Chromium(41.0.2222.0(64位))、Firefox(35.0.1)和Safari中进行了测试,它们都是在Windows 8.1和OS X上进行的。我在所有系统上都有管理员帐户


我还没有尝试在启用本地文件访问标志的情况下使用Chrome,我希望有另一种解决方案不会降低浏览器的安全级别。

最终我使用--allow file access from files标志创建了一个新的Chrome快捷方式,它现在可以在加载的服务器上工作。现在所有的webgl/three.js都可以工作了。因此,问题仍然是由Chrome引起的,而不是由服务器或文件引起的。这不是一个好的解决方案,但它是一个有效的解决方案。

您能给我们显示一个未加载的纹理的完整URL吗?首先,我尝试了这些链接中的纹理,但没有成功。所以我认为这可能与从另一个URL加载的文件的同源策略有关。因此,我将repo中的所有文件保存在我的计算机上,并使用相同的文件在本地运行演示。同样,纹理没有加载。因此,我加载了一个本地服务器(XAMPP),并将所有文件放在htdocs/文件夹中。再一次,他们没有装入任何broswer。我想我必须在启用本地文件访问的情况下运行浏览器,但我不喜欢为了让three.js正常工作而降低浏览器的安全性。我可以在另一台服务器上测试它,看看它是否正常工作。但我希望能够在本地使用演示,这样我就可以编辑它们并立即获得结果反馈。这确实与同源政策有关,这是真的。默认情况下,浏览器也不允许在XHR中使用file:///URL,因此从文件系统运行也不是一个选项(除非在浏览器配置中降低安全设置)。本地web服务器有什么问题?我也用本地服务器测试过,但仍然不起作用。它以相同的源策略输出相同的错误消息。这就是我在这里问的原因,因为通常它应该在本地服务器上运行。