我试图加载一个3D模型,存储在我的电脑本地,到Three.js与JSONLoader, 3D模型是在同一目录下,作为整个网站。
我得到了“跨起源请求只支持HTTP.”错误,但我不知道是什么原因导致它也不知道如何修复它。
我试图加载一个3D模型,存储在我的电脑本地,到Three.js与JSONLoader, 3D模型是在同一目录下,作为整个网站。
我得到了“跨起源请求只支持HTTP.”错误,但我不知道是什么原因导致它也不知道如何修复它。
当前回答
我的水晶球显示,您正在使用文件://或C:/加载模型,这对错误消息保持真实,因为它们不是http://
因此,您可以在本地PC上安装web服务器,也可以将模型上传到其他地方,使用jsonp并将url更改为http://example.com/path/to/model
RFC-6454中将Origin定义为
...they have the same
scheme, host, and port. (See Section 4 for full details.)
因此,即使您的文件起源于同一主机(localhost),但只要方案不同(http / file),它们就被视为不同的起源。
其他回答
不可能在没有服务器的情况下加载静态本地文件(例如:svg)。如果你的机器上安装了NPM /YARN,你可以使用"http-server"来设置简单的http服务器。
npm install http-server -g
http-server [path] [options]
或者在项目文件夹中打开终端并键入“hs”。它将自动启动HTTP live服务器。
在Chrome中,你可以使用这个标志:
--allow-file-access-from-files
点击这里阅读更多。
今天碰到了这个。
我写了一些像这样的代码:
app.controller('ctrlr', function($scope, $http){
$http.get('localhost:3000').success(function(data) {
$scope.stuff = data;
});
});
...但它应该是这样的:
app.controller('ctrlr', function($scope, $http){
$http.get('http://localhost:3000').success(function(data) {
$scope.stuff = data;
});
});
唯一的区别是第二段代码中没有http://。
只是想把它放出来,以防其他人有类似的问题。
我建议您使用一个迷你服务器在本地主机上运行这类应用程序(如果您没有使用某些内置服务器)。
这里有一个非常简单的设置和运行:
https://www.npmjs.com/package/tiny-server
它只是说应用程序应该在web服务器上运行。我在chrome上也有同样的问题,我启动tomcat并将我的应用程序移动到那里,它工作了。