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

问题描述 投票:0回答:4

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

尽管 API 调用在 android debug build 中运行良好,但已在真实 Android 设备(Realme 3 pro)和 chrome 浏览器中进行了测试。

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

我正在使用 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. Cordova 升级后,Http 和 Https 调用无法正常工作
  2. 我的发布 apk 立即崩溃,但调试应用程序正常工作 ionic 5

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

javascript ajax cordova cordova-android
4个回答
2
投票

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

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

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

默认情况下仅允许使用 https。


1
投票

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

解决方案

将属性

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

原因

当该属性设置为

"false"
时,平台组件(例如 HTTP 和 FTP 堆栈、DownloadManager 和 MediaPlayer)将拒绝应用程序使用明文流量的请求。

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


0
投票

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


0
投票

对于 Android,我建议在 Config.xml

中添加这些行
<preference name="hostname" value="localhost" />
<preference name="AndroidInsecureFileModeEnabled" value="true" />

解决方案来源

© www.soinside.com 2019 - 2024. All rights reserved.