REST API(http 和 https)Ajax 调用在最新的 Cordova Ver 10.0.0 中不起作用

REST API (http and https) Ajax Call is not working in Latest Cordova Ver 10.0.0

我使用 Cordova 9.0.0 开发了一个应用程序,它已经投入生产多年。最近几天,我将我的 Cordova 版本从 9.x 升级到 10.x。升级后,Http 和 Https (REST API) 调用在 release build.

中不起作用

虽然 API 调用在 android debug build 中运行良好,但在真实 android 设备 (Realme 3 pro) 和 chrome 浏览器。

由于问题发生在发布版本中,我无法生成任何错误日志。

我正在使用 AJAX 拨打 API 电话。

注意:所有 REST API 都是 Https 托管的。

AJAX 调用

$.ajax({
    type: "POST",
    url: "https://example.com/methodName",
    data: {
        data: mYData
    },
    contentType: 'application/x-www-form-urlencoded',
    timeout: 30000,
    success: function (data) {},
    error: function (message, textStatus) {}

相关查询:

  1. My release apk crash immediately but the debug app work properly ionic 5

编辑: 下面的错误响应是登录 API 调用。

将我自己的问题的解决方案贴出来,供遇到同样问题的开发者参考。

解决方案

<application> 标签内的 AndroidManifest.xml 文件中将属性 android:usesCleartextTraffic 添加到 true

原因

当该属性设置为 "false" 时,平台组件(例如,HTTP 和 FTP 堆栈、DownloadManager 和 MediaPlayer)将拒绝应用使用明文流量的请求。

有关更多详细信息,请访问 https://developer.android.com/guide/topics/manifest/application-element#usesCleartextTraffic

如果即使在设置 android:usesCleartextTraffic=true 后仍无法正常工作。然后删除白名单插件(如果已经存在)。或删除其他插件。并重新安装插件。它会起作用。似乎插件没有升级到更高版本。

Cordova 10.0 和 10.1 之间发生了变化。 请检查您的 Cordova 版本并更新至 >10.1 该团队在 10.1 中添加了 http 支持。请检查发行说明。 Release Notes 10.1

您必须将此元素添加到您的 Cordova up 的 config.xml 中。

<preference name="scheme" value="http" />

默认情况下只允许 https。