我试图加载一个3D模型,存储在我的电脑本地,到Three.js与JSONLoader, 3D模型是在同一目录下,作为整个网站。

我得到了“跨起源请求只支持HTTP.”错误,但我不知道是什么原因导致它也不知道如何修复它。


当前回答

在Chrome中,你可以使用这个标志:

--allow-file-access-from-files

点击这里阅读更多。

其他回答

简单的解决方案,谁使用VS Code

我得到这个错误已经有一段时间了。大多数答案都是可行的。但我找到了一个不同的解决方案。如果你不想处理node.js或任何其他解决方案在这里,你正在使用一个HTML文件(从另一个js文件调用函数或获取json api的)尝试使用Live Server扩展。

它允许您轻松地打开一个活动服务器。因为它创建了本地主机服务器,所以问题得到了解决。您可以通过打开HTML文件并右键单击编辑器并单击open with Live Server来启动localhost。

它基本上使用http://localhost/index.html加载文件,而不是使用file://....

EDIT

不需要有.html文件。您可以使用快捷方式启动活动服务器。

按(alt+L, alt+O)打开服务器,按(alt+L, alt+C)停止服务器。[在MAC上,cmd+L, cmd+O和cmd+L, cmd+C]

希望它能帮助到别人:)

今天碰到了这个。

我写了一些像这样的代码:

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://。

只是想把它放出来,以防其他人有类似的问题。

不可能在没有服务器的情况下加载静态本地文件(例如:svg)。如果你的机器上安装了NPM /YARN,你可以使用"http-server"来设置简单的http服务器。

npm install http-server -g
http-server [path] [options]

或者在项目文件夹中打开终端并键入“hs”。它将自动启动HTTP live服务器。

使用http://或https://创建url

错误:localhost: 8080

解决方案:http://localhost: 8080

如果你使用旧版本的Mozilla Firefox(2019年之前),它会像预期的那样工作,没有任何问题;

附言:令人惊讶的是,旧版本的ie和Edge也能正常工作。