84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
我正在尝试使用JSONLoader将存储在我的计算机上的3D模型加载到Three.js中,而这个3D模型与整个网站位于同一个目录中。
JSONLoader
我遇到了"跨域请求仅支持HTTP协议"的错误,但我不知道是什么原因导致的,也不知道如何修复它。
"跨域请求仅支持HTTP协议"
明确一点 - 是的,错误是说您不能直接在浏览器中指向file://some/path/some.html
file://some/path/some.html
以下是一些快速启动本地Web服务器以让您的浏览器呈现本地文件的选项
如果您已经安装了Python...
使用命令cd /path/to/your/folder进入包含您的文件some.html或文件的文件夹
cd /path/to/your/folder
some.html
使用命令python -m SimpleHTTPServer启动Python Web服务器
python -m SimpleHTTPServer
这将在http://localhost:8000上启动一个Web服务器来托管您的整个目录列表
http://localhost:8000
python -m SimpleHTTPServer 9000
http://localhost:9000
这种方法已内置在任何Python安装中。
执行相同的步骤,但使用以下命令:python3 -m http.server
python3 -m http.server
如果您使用的是Visual Studio Code,您可以安装Live Server扩展,该扩展提供了一个本地Web服务器环境。
或者,如果您需要一个更灵敏的设置并且已经使用nodejs...
通过输入npm install -g http-server安装http-server
npm install -g http-server
http-server
切换到包含some.html的工作目录
通过发出http-server -c-1启动您的http服务器
http-server -c-1
这将启动一个Node.js httpd,将您目录中的文件作为静态文件提供,可以从http://localhost:8080访问
http://localhost:8080
如果您的首选语言是Ruby ... Ruby之神说这也可以:
ruby -run -e httpd . -p 8080
当然,PHP也有解决方案。
php -S localhost:8000
我的水晶球告诉我,你正在使用file://或C:/加载模型,这符合错误信息,因为它们不是http://
file://
C:/
http://
所以你可以在本地计算机上安装一个Web服务器,或者将模型上传到其他地方,并使用jsonp并将URL更改为http://example.com/path/to/model
jsonp
http://example.com/path/to/model
在RFC-6454中定义了起源
...它们具有相同的 方案、主机和端口。(有关详细信息,请参见第4节。)
所以即使你的文件来源于相同的主机(localhost),但只要方案不同(http/file),它们被视为不同的起源。
localhost
http
file
明确一点 - 是的,错误是说您不能直接在浏览器中指向
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
),它们被视为不同的起源。