我正在尝试使用JSONLoader
将 3D 模型加载到 Three.js 中,并且该 3D 模型与整个网站位于同一目录中。
我收到"Cross origin requests are only supported for HTTP."
错误,但我不知道是什么原因导致的,也不知道如何解决。
我的水晶球说您正在使用file://
或C:/
加载模型,因为错误消息不是http://
,所以对错误消息保持正确
因此,您既可以在本地 PC 上安装 Web 服务器,也可以将模型上传到其他地方,然后使用jsonp
并将 url 更改为http://example.com/path/to/model
起源在RFC-6454 中定义为
...they have the same
scheme, host, and port. (See Section 4 for full details.)
因此,即使您的文件源自同一主机( localhost
),但是只要方案不同( http
/ file
),它们就会被视为不同的来源。
明确地说 - 是的,错误是说您不能直接将浏览器指向file://some/path/some.html
以下是一些选项,可以快速启动本地 Web 服务器,以使您的浏览器呈现本地文件
如果您安装了 Python ...
使用命令cd /path/to/your/folder
将目录更改为文件some.html
或文件所在的文件cd /path/to/your/folder
使用命令python -m SimpleHTTPServer
启动 Python Web 服务器
这将启动一个 Web 服务器来托管您的整个目录列表, http://localhost:8000
为http://localhost:8000
python -m SimpleHTTPServer 9000
为您提供链接: http://localhost:9000
此方法内置于任何 Python 安装中。
执行相同的步骤,但是使用以下命令python3 -m http.server
或者,如果您需要更敏感的设置并已使用 nodejs ...
安装http-server
通过键入npm install -g http-server
进入您的some.html
所在的工作目录
通过发出http-server -c-1
启动您的 http 服务器
这会启动一个 Node.js httpd,它将您目录中的文件作为可从http://localhost:8080
访问的静态文件来提供
如果您首选的语言是 Ruby ... Ruby Gods 表示这也可以:
ruby -run -e httpd . -p 8080
当然,PHP 也有其解决方案。
php -S localhost:8000