Cordova 在iOS上模拟ionic应用程序时出现CORS问题
我最近更新了Cordova 在iOS上模拟ionic应用程序时出现CORS问题,cordova,ionic3,ionic-cli,Cordova,Ionic3,Ionic Cli,我最近更新了ionic cli,现在正尝试使用命令ionic cordova simulate ios来模拟一个ionic应用程序 但是,我在每个api请求中都会遇到CORS错误 访问控制不允许原点允许原点 我发现他们是这样说的 与直接运行cordova Simulate一样,它还可以监视web资产中的更改,并通过--livereload选项提供实时重新加载功能 该命令似乎还启动了服务器,这将解释为什么源代码是localhost,而不是file:// 但是,我尝试了使用cordova Simul
ionic cli
,现在正尝试使用命令ionic cordova simulate ios
来模拟一个ionic应用程序
但是,我在每个api请求中都会遇到CORS错误
访问控制不允许原点允许原点
我发现他们是这样说的
与直接运行cordova Simulate一样,它还可以监视web资产中的更改,并通过--livereload选项提供实时重新加载功能
该命令似乎还启动了服务器,这将解释为什么源代码是localhost
,而不是file://
但是,我尝试了使用cordova Simulate ios
进行模拟,或者使用ionic cordova build ios
构建应用程序,并使用模拟器运行输出,但仍然出现CORS错误
在Android上进行模拟可以很好地工作,并且在浏览器中有一个运行应用程序的代理
你知道我的思路是否正确,是否有办法从
文件://
进行模拟吗?将应用程序发布到应用商店时,此问题是否仍然存在?尝试创建一个ionic代理,将此代码添加到ionic.config.json
"proxies": [{
"path": "/api",
"proxyUrl": "http://your-server.com"
}]
然后用http.get('/api')
如果仍然不起作用,请尝试使用cordova http插件,而不是angular http。iOS上CORS的问题实际上不是来自
ionic cli
,而是因为我从UIWebview
切换到使用WKWebView
解释更多关于WKWebView的信息,以及为什么它比它的前身要好得多
它还提到了关于CORS的这一点:
UIWebview,或iOS中较旧的webview,实际上从未强制实施CORS,但WKWebView提供并没有禁用CORS的方法。要解决此问题,您需要正确实施CORS并添加以下条目:
来源:
如果这是不可能的(您没有API),一个解决方法是使用本机HTTP插件@ionic native/HTTP
因此,我在api上启用了CORS,一切正常。谢谢您的回答,但在浏览器中运行应用程序时,我已经设置了代理。在更新ionic cli之前,在iOS上模拟的应用程序的源代码是
file://
,但现在的源代码是localhost
。我还想知道app Store上的应用程序是否也会有同样的问题,因为为生产和发布而构建也会产生CORS问题。我不知道thnik prod会解决这个问题,但尝试使用而不是angularjs的http客户端。我实际上需要使用api进行身份验证,但我不确定更改http客户端会解决问题,因为它将发送相同的请求头(和相同的来源)。即使--consolelogs和--livereload未激活,它也会强制cors?在--consolelogs和--livereload未激活请求之前,请求工作正常。没有,我对问题原因的理解实际上是错误的。我最近也从UIWebview
切换到WKWebView
,并且WKWebView
确实执行CORS,而他的前任没有。嗨,关于cordova插件ionic webview的类似问题,这里有什么帮助吗?谢谢