我试图加载一个3D模型,存储在我的电脑本地,到Three.js与JSONLoader, 3D模型是在同一目录下,作为整个网站。
我得到了“跨起源请求只支持HTTP.”错误,但我不知道是什么原因导致它也不知道如何修复它。
我试图加载一个3D模型,存储在我的电脑本地,到Three.js与JSONLoader, 3D模型是在同一目录下,作为整个网站。
我得到了“跨起源请求只支持HTTP.”错误,但我不知道是什么原因导致它也不知道如何修复它。
当前回答
如果你使用旧版本的Mozilla Firefox(2019年之前),它会像预期的那样工作,没有任何问题;
附言:令人惊讶的是,旧版本的ie和Edge也能正常工作。
其他回答
它只是说应用程序应该在web服务器上运行。我在chrome上也有同样的问题,我启动tomcat并将我的应用程序移动到那里,它工作了。
只需将url更改为http://localhost而不是localhost。如果你从本地打开html文件,你应该创建一个本地服务器来服务该html文件,最简单的方法是使用Web server for Chrome。这样问题就解决了。
科尔多瓦实现了这一点。我还是不明白科多瓦是怎么做到的。它甚至不通过shouldInterceptRequest。
后来我发现,从本地加载任何文件的关键是:myWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
当你想要访问任何http资源时,webview会用OPTIONS方法检查,你可以通过WebViewClient授予访问权限。shouldInterceptRequest通过返回一个响应,对于下面的GET/POST方法,您可以只返回null。
当我下载一个页面进行离线查看时,我就遇到了这种情况。
我只需要从所有<link>和<script>标签中删除integrity="*****"和crossorigin="anonymous"属性
Url应该像这样:
createUserURL = "http://www.localhost:3000/api/angular/users"
而不是:
createUserURL = "localhost:3000/api/angular/users"