Ich versuche, mit JSONLoader
ein lokal auf meinem Computer gespeichertes 3D-Modell in Three.js zu laden, und das 3D-Modell befindet sich im selben Verzeichnis wie die gesamte Website.
Ich erhalte den Fehler„Cross-Origin-Anfragen werden nur über HTTP unterstützt.“
, aber ich weiß nicht, was ihn verursacht oder wie ich ihn beheben kann.
明确地说 - 是的,错误表明您无法将浏览器直接指向
file://some/path/some.html
这里有一些选项可以快速启动本地网络服务器,让您的浏览器呈现本地文件
Python 2
如果你安装了Python...
使用命令
cd /path/to/your/folder
将目录更改为文件some.html
或文件所在的文件夹使用命令
启动 Python Web 服务器python -m SimpleHTTPServer
这将启动一个网络服务器来托管您的整个目录列表,网址为
http://localhost:8000
python -m SimpleHTTPServer 9000
为您提供链接:http://localhost:9000
此方法内置于任何 Python 安装中。
Python 3
执行相同的步骤,但使用以下命令
python3 -m http.server
VSCode
如果您使用Visual Studio Code,您可以安装Live Server扩展,提供本地 Web 服务器环境。
Node.js
或者,如果您需要更具响应性的设置并且已经使用了 Nodejs...
通过输入
npm install -g http-server
安装http-server
切换到您的工作目录,
some.html
所在的位置通过发出
http-server -c-1
启动您的http服务器这会启动 Node.js httpd,它将目录中的文件作为静态文件提供,可从
http://localhost:8080
红宝石
如果您的首选语言是 Ruby ...Ruby Gods 说这也有效:
PHP
当然PHP也有它的解决方案。
我的水晶球说您正在使用
file://
或C:/
加载模型,这与错误消息相符,因为它们不是http://因此,您可以在本地 PC 上安装网络服务器,也可以将模型上传到其他位置并使用 jsonp 并将 url 更改为 http://example.com/path/to/型号
起源在RFC-6454中定义为
因此,即使您的文件源自同一主机 (
localhost
),但只要方案不同 (http
/file
),它们被视为不同的来源。