Three.js在Chrome上加载本地MTL文件

时间:2017-06-25 21:45:39

标签: javascript google-chrome three.js

我在使用Three.js在Chrome上加载MTL文件时遇到问题。它在Safari上工作正常,但我在Chrome中遇到了跨源请求错误。我不知道如何解决本地文件的这个问题。如果我将其发布到Chrome上的http网站,它确实可以正常工作。

var mtlLoader = new THREE.MTLLoader();
mtlLoader.setPath('assets/');
mtlLoader.setBaseUrl('assets/');
mtlLoader.load('file.mtl', function(materials) {
     ...
});

three.js:18280 XMLHttpRequest无法加载file:///.../assets/file.mtl。交叉源请求仅支持协议方案:http,数据,chrome,chrome-extension,https。

1 个答案:

答案 0 :(得分:0)

这不是一个真正的THREEjs问题,但无论如何我都会在这里回答:

允许网站从本地文件系统请求文件,这是非常安全或不允许的。

如果网站在Windows系统上请求了file:/// C:/ Users / Installation / Pictures /的索引,然后才开始将所有内容加载到服务器,该怎么办。

这实在是不安全,因为它可能允许恶意代理仅通过您访问来从您的计算机中删除文件。因此,只允许网站从本地文件系统外部请求文件。

您应该在Mamp中使用Brackets或内置服务器模拟。我使用Mamp是因为它也可以很容易地在移动设备上快速测试,并且比使用FTP快得多。