- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Cordova 非常陌生,我已经安装了 Cordova 版本 9,我正在 android studio 上开发它。我对用 Java 编写的 Web 服务层进行了简单的 ajax 调用。由于某种原因,我无法从我的移动应用程序连接到我的网络服务,它返回 404 状态。相同的 URL 是从模拟器的浏览器连接的,但不是从开发的应用程序连接的。我已在 config.xml 中将我的网址列入白名单。下面是config.xml和ajax代码。
配置.xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.example.hello" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>HelloWorld</name>
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="dev@cordova.apache.org" href="http://cordova.io">
Apache Cordova Team
</author>
<content src="index.html" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<preferance name="android-usesCleartextTraffic" value="true" />
<access origin="*" subdomains="true"/>
<access origin="http://192.168.0.111:8091" subdomains="true"/>
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="data:*" />
<allow-navigation href="http://192.168.0.111:8091/*" />
<allow-navigation href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="http://192.168.0.111:8091/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
</widget>
Ajax 代码:
document.getElementById("btnLogin").addEventListener("click", onClickOfLogin);
function onClickOfLogin(){
$.ajax({
type: "GET",
dataType: "jsonp",
url: "http://192.168.0.111:8091/ZeOMSWS/AppLogin",
crossDomain: true,
success: function(resultObj) {
navigator.notification.alert(
'Registration request has been sent for HR approval. You will receive an email once approved and then you can proceed with Login.',
onSuccessDismissOfAlert,
'Info',
'OK');
},
error: function(request, status, error) {
console.log("Error status " + status);
console.log("Error request status text: " + request.statusText);
console.log("Error request status: " + request.status);
console.log("Error request response text: " + request.responseText);
console.log("Error response header: " + request.getAllResponseHeaders());
navigator.notification.alert(
'Error Occured.' + error,
onErrorDismissOfAlert,
'Info',
'OK');
}
});
}
正如我之前提到的,我使用的是带有 SDK 版本 29 的 Cordova 9,模拟器位于 Android 10 上。我已经被这个问题困扰了两天多了。我在谷歌上尝试了很多解决方案,但我不明白我哪里出了问题。请帮助我知道我缺少什么。
任何帮助将不胜感激。
谢谢
最佳答案
问题是在 Android SDK 版本 29 中默认允许 ajax 调用 https 服务。
无法发送 HTTP 请求。
只需将应用和服务器响应中的 URL 从 http://更改为 https://
否则:
<widget xmlns:android="http://schemas.android.com/apk/res/android">
<platform name="android">
<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
</platform>
希望有用
关于java - 使用 Ajax 调用将 Cordova 9 移动应用程序连接到 Java Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59436022/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!