Ich versuche, mit JSONLoader
ein 3D-Modell, das auf meinem Computer im selben Verzeichnis wie die gesamte Website gespeichert ist, in Three.js zu laden.
Ich habe den Fehler "Cross-Origin-Anfragen unterstützen nur das HTTP-Protokoll"
festgestellt, weiß aber nicht, was ihn verursacht oder wie ich ihn beheben kann.
明确一点 - 是的,错误是说您不能直接在浏览器中指向
file://some/path/some.html
以下是一些快速启动本地Web服务器以让您的浏览器呈现本地文件的选项
Python 2
如果您已经安装了Python...
使用命令
cd /path/to/your/folder
进入包含您的文件some.html
或文件的文件夹使用命令
python -m SimpleHTTPServer
启动Python Web服务器这将在
http://localhost:8000
上启动一个Web服务器来托管您的整个目录列表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 ... Ruby之神说这也可以:
PHP
当然,PHP也有解决方案。
我的水晶球告诉我,你正在使用
file://
或C:/
加载模型,这符合错误信息,因为它们不是http://
所以你可以在本地计算机上安装一个Web服务器,或者将模型上传到其他地方,并使用
jsonp
并将URL更改为http://example.com/path/to/model
在RFC-6454中定义了起源
所以即使你的文件来源于相同的主机(
localhost
),但只要方案不同(http
/file
),它们被视为不同的起源。