我的离子应用程序中有一个简单的Web服务...它连接到远程服务器以执行简单的任务。
代理是以离子形式设置的:
"proxies": [{
"path": "/api",
"proxyUrl": "http://example.com/api"
}]
并且呼叫是" / api"。这些可以在localhost浏览器中正确解析http://example.com/api
(使用离子服务)。
但是在xcode中,网址被解析为:
file:///api
我无法对此发现任何具体内容。怎么表明我要求ios?
答案 0 :(得分:3)
我在Android设备上运行时遇到了同样的问题,解决方案很简单,请注意这里是我们用来处理CORS问题的代理,这个问题只与桌面浏览器有关,所以在使用时离子服务我们需要代理,我们不需要使用代理其他设备。 我在服务中使用了以下条件来处理这个问题,而不是在为任何目标平台构建时进行任何进一步的代码更改。
var APIUrl = '/myproxies';
if (this.platform.is('core') == true){
APIUrl = '/myproxies';
}else{
APIUrl = 'http://api.sample.com/SomeSampleAPIProvider';
}
this.http.get(APIUrl+"/Json").map(res => res.json()).subscribe(
data => {.....
可以参考此link来了解this.platform的使用详情
答案 1 :(得分:0)
这是预期的行动。离子CLI代理仅用于离子CLI服务或运行命令。更多信息:http://blog.ionic.io/handling-cors-issues-in-ionic/
file:/// api url不会触发Angular浏览器CORS pre-flight OPTIONS调用,所以你应该没事。
您遇到的任何其他CORS问题都将出现在服务器端。