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

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


当前回答

如果你使用VS代码,试着在那里加载一个活动服务器。立即解决了我的问题。

其他回答

在Android应用程序中-例如,允许JavaScript通过file:///android_asset/访问资产-使用setAllowFileAccessFromFileURLs(true)在WebView上调用getSettings()获得的WebSettings上。

对我来说,最快的方法是: 对于windows用户在Firefox上运行文件的问题解决了,或者 如果你想使用chrome,对我来说最简单的方法是安装Python 3,然后从命令提示符运行命令Python -m http。服务器,然后访问http://localhost:8000/,然后导航到您的文件

python -m http.server

为java安装本地web服务器,例如Tomcat,对于php,您可以使用lamp等 将json文件放到公共可访问的应用服务器目录中 启动应用程序服务器,您应该能够从localhost访问该文件

科尔多瓦实现了这一点。我还是不明白科多瓦是怎么做到的。它甚至不通过shouldInterceptRequest。

后来我发现,从本地加载任何文件的关键是:myWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);

当你想要访问任何http资源时,webview会用OPTIONS方法检查,你可以通过WebViewClient授予访问权限。shouldInterceptRequest通过返回一个响应,对于下面的GET/POST方法,您可以只返回null。

er。我刚刚发现了一些官方文字“试图加载未构建的,远程AMD模块使用dojo/文本插件将失败,由于跨起源安全限制。(AMD模块的构建版本不受影响,因为构建系统消除了对dojo/text的调用。)”https://dojotoolkit.org/documentation/tutorials/1.10/cdn/