android - Ionic - HTTP POST 请求不适用于 native Android 但适用于 Ionic Devapp

标签 android cordova http ionic-framework ionic3

我正尝试在我的 ionic 应用程序中使用 ionic native HTTP 模块发出发布请求。当我使用 Ionic DevApp 运行应用程序时,请求有效并且应用程序运行良好。当我使用 ionic cordova run android --device 在我的设备上本地构建和运行应用程序时,http 请求失败。

我一直在尝试其他堆栈溢出问题中列出的一系列选项。我已经安装了 cordova-plugin-whitelist 并修改了我的 config.xml 以包含所有不同类型的访问源并允许导航。我还确保我的 Android Manifest 有:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

我不知道还能尝试什么,我认为这不是 API 的 CORS 问题,因为当我使用 ionic serve -c 运行它时,请求工作正常通过 Ionic DevApp。

仅供引用,我的 API 请求如下所示:

 var headers = {}
 this.http.setDataSerializer('json')
 return this.http.post(API_URL, send_data, {headers: headers})
  .then(data => {
 ...
 }

在我的 config.xml 文件中,我包含了:

<access origin="*" />
<access origin="*" subdomains="true" />
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="localhost:8080" />
<allow-navigation href="data:*" />
<allow-intent href="http://*/*" />
<allow-intent href="localhost:8080" />

任何指导将不胜感激,这浪费了大量时间,令人沮丧的是该应用程序功能齐全,并成功地从 Ionic DevApp 发出了 http post 请求。谢谢。

最佳答案

您是否尝试连接 chrome 调试器以查看您的发布请求失败的原因? 你可以通过访问 chrome://inspect 来做到这一点 您应该能够在那里看到您的应用程序(假设您的手机已连接并处于开发模式)。 看到您的应用程序后,单击检查。这应该会打开一个 chrome 调试器窗口,让您可以查看网络流量。

请回复结果。

关于android - Ionic - HTTP POST 请求不适用于 native Android 但适用于 Ionic Devapp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53220110/

相关文章:

ios - cordova-plugin-ionic-webview在iOS中发送空原点

html - phonegap/cordova 可以使用 native GUI 吗?

javascript - Phonegap 中的地理位置示例会在 Android 上发出错误警报

c# - 将用户身份验证信息传递给 XBAP 应用程序

jquery - Chrome 错误地解释了 JSONP 请求中的相对重定向

arrays - Angular 为什么这个 HTTP 请求响应数组的长度未定义?

android - 在 Android 中配置 Tesseract

java - Java 构造函数中的引用

android - 解析 Realm 中的 Integer 原始类型

android - 在 gradle 中定义可从任何子模块访问的枚举