我有问题 - 当我在我的iPhone上编译并运行我的ionic2应用程序时,我无法从我的resti api获取数据:http://my-api.com:8082/api/v1
第二个问题是我甚至无法得到错误(!) - 我执行此操作:
this.http.get('http://my-api.com:8082/api/v1/users')
.map( res => res.json() )
.subscribe( result => { .. }, err => { .. })
但在iphone上没有 - 没有错误,没有结果 - (
在ionic lab
中,一切正常 - 完全访问
更新
下面我'检查'正确答案,但我想告诉更多关于这个话题 - 可能这对其他人有帮助。我想进一步尝试使用子域my-api.dev:8082
运行LOCALy的服务(我更改hosts
文件)。
因此,要在iOS设备中显示此服务,您应该编辑config.xml
文件并找到与此类似的行:
<allow-navigation href="http://192.168.8.101:8100" />
这是由webserver使用的本地主机的IP(它可以在不同的计算机上变化),具有由ionic2用于热模块替换(HMR)的角度应用程序。因此,要访问您的LOCAL api,请使用其PORT及以上IP并写入config.xml
行,如下所示:
<allow-intent href="http://192.168.8.101:8082/*" />
并在您的api角度提供程序中使用此地址(您可以将此地址保存在单独的.env.ts文件中,以便在一个地方轻松更改它取决于您想要的应用程序构建:test,prod,local)。之后,您可以使用HMR构建和运行您的应用程序:
ionic cordova run ios -l
(编辑config.xml文件时,不需要杀死并再次运行命令 - 更改将自动更新)
答案 0 :(得分:1)
第一个问题
尝试安装cordova-plugin-whitelist
$ cordova plugin add cordova-plugin-whitelist --save
$ cordova prepare
然后将以下行添加到config.xml
<allow-intent href="http://my-api.com:8082/*"/>
我认为如果你克服了第一个问题,第二个问题也会解决