2

我正在尝试使用 Three.js 加载 OBJ 模型。

起初我试过这个:

var loader = new THREE.OBJLoader( );
loader.load( 'chair.obj', function ( object )
{
   scene.add( object );
});

但是我收到一个错误,说只有 HTTP 支持跨源请求。

我在互联网上寻求帮助,找到了这个页面:https ://github.com/mrdoob/three.js/wiki/How-to-run-things-locally

并尝试从 cmd 行运行 Chrome: chrome --allow-file-access-from-files

依然没有。

最后我尝试使用 Python 内置的 Http 服务器。并尝试像这样加载:

var loader = new THREE.OBJLoader( );
loader.load( 'http://localhost:8000/chair.obj', function ( object )            
{
   scene.add( object );

});

现在场景加载了,但我尝试加载的模型没有显示出来。在 Chrome 开发工具中,我看到以下错误:

XMLHTTPRequest 无法加载。Access-Control-Allow-Origin 不允许原始 null。

我在桌面上具有 3D 图形方面的专业知识,但我对 JavaScript 和互联网技术完全陌生。Three.js 让我非常兴奋,并且非常有动力去探索它,但我遇到了这些问题。

我试图在互联网上查找此内容,但没有成功。我真的需要帮助。我将不胜感激任何人可能对如何克服这一点提出的任何建议。

谢谢

4

1 回答 1

1

这听起来像是在本地运行 three.js 的 Chrome 安全问题。Firefox 可能会在没有任何额外步骤的情况下显示模型。

要使其正常工作,您需要将此行添加到 Chrome 快捷方式目标

--allow-file-access-from-files

所以它在 Windows 上看起来像这样

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files

这里有关于这个主题的更多信息。

于 2013-10-29T16:19:18.223 回答