REST APIhttp 和 httpsAjax 调用在最新的 Cordova Ver 10.0.0 中不起作用

问题描述

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

尽管 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. Http and Https calls not working after Cordova upgrade
  2. My release apk crash immediately but the debug app work properly ionic 5

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

enter image description here

解决方法

将我自己问题的解决方案发布给面临相同问题的开发人员,也供我将来参考。

解决方案

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

原因

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

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

,

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