草庐IT

iOS ionic 2 : How to send http request to different port than 80/443 (https)

coder 2024-01-22 原文

我有问题 - 当我在我的 iPhone 上编译和运行我的 ionic2 应用程序时,我无法从我的 restful 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(我更改 hosts 文件)在本地运行的服务。

因此,要在您的 iOS 设备中看到此服务,您应该编辑 config.xml 文件并找到与此类似的行:

<allow-navigation href="http://192.168.8.101:8100" />

这是网络服务器使用的本地主机的 IP(在不同的计算机上可能会有所不同)地址,其中 ionic2 使用角度应用程序进行热模块更换 (HMR)。因此,要访问您的 LOCAL api,请使用其端口和以上 IP 并像这样在 config.xml 行中写入:

<allow-intent href="http://192.168.8.101:8082/*" />

并在您的 api 角度提供程序中使用此地址(您可以将此地址保存在单独的 .env.ts 文件中,以便轻松地在一个地方更改它,具体取决于您要构建的应用程序:测试、产品、本地)。之后,您可以通过以下方式使用 HMR 构建和运行您的应用:

ionic cordova run ios -l

(编辑 config.xml 文件时,无需终止并再次运行上述命令 - 更改将自动更新)

最佳答案

第一个问题 尝试安装 cordova-plugin-whitelist

$ cordova plugin add cordova-plugin-whitelist --save
$ cordova prepare

然后将以下行添加到 config.xml

<allow-intent href="http://my-api.com:8082/*"/>

我想如果你克服了第一个问题,第二个问题也会解决

关于iOS ionic 2 : How to send http request to different port than 80/443 (https),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44515477/

有关iOS ionic 2 : How to send http request to different port than 80/443 (https)的更多相关文章

随机推荐