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) {}
相关查询:
- 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。
我使用 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) {}
相关查询:
- 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。