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的类似问题,这里有什么帮助吗?谢谢