无法提交:// 请求,跨源请求仅支持 http://
Posted
技术标签:
【中文标题】无法提交:// 请求,跨源请求仅支持 http://【英文标题】:cannot file:// requests,cross origin request are only supported for http:// 【发布时间】:2017-09-18 19:38:11 【问题描述】:我使用 Ionic html 元素开发了一个 Phonegap 应用程序。 android 应用程序一切正常,但在 ios 中却抛出错误:“无法访问跨源请求。”
虽然我在 config.xml 中添加了一个标签,即 allow-navigation,我在其中提供了我的 api url。但它仍然得到同样的错误。
尝试使用“”、“http:///*”,但仍然无法正常工作。
【问题讨论】:
这看起来是在 PhoneGap 中重新打开的问题:github.com/phonegap/phonegap-app-developer/issues/98 【参考方案1】:您是否在使用适用于 iOS 的 WKWebView 插件?由于 CORS 限制,WKWebView 中有 known issues 带有 xhr 请求。有几种可能的解决方法。
您可以安装 local-webserver plugin,这样您的所有资产都通过 http:// 而不是 file:// URI 提供。
还有支持 XHR 请求的 WKWebView 插件的 Ionic's fork。
【讨论】:
不,我没有使用适用于 iOS 的 WKWebView 插件。 :( 我用的是apache cordova,但是为什么还是被屏蔽了?它说'阻止了原点为空的框架'。【参考方案2】:对于 Cordova iOS 6+ 只需要安装以下插件。
cordova plugin add https://github.com/AraHovakimyan/cordova-plugin-wkwebviewxhrfix
此插件不依赖任何其他附加插件,也不需要额外的权限。
【讨论】:
【参考方案3】:您可能正在使用 ionic-webview-plugin?
如果是这种情况,您必须删除本机 url 的 file:///
部分。
必须删除 URL 的 file:// 部分才能正确加载资源。您可以手动执行此操作,但从 ionic-angular@3.2.0 开始,我们提供了一个可以自动处理此问题的快速函数。
window.Ionic.WebView.convertFileSrc()
https://blog.ionicframework.com/wkwebview-for-all-a-new-webview-for-ionic/
我自己只是偶然发现了这个:)
【讨论】:
以上是关于无法提交:// 请求,跨源请求仅支持 http://的主要内容,如果未能解决你的问题,请参考以下文章