如何解决使用 Cordova 的 Android 模拟器上的 Angular 应用程序上的 HTTP 请求失败
我正在尝试在使用 Cordova 构建的 Angular 应用程序上访问托管在 http://localhost:8080 上的 Web 服务器。我可以使用模拟器上的导航器访问服务器,但我从未收到来自应用程序本身的任何请求,它只是失败并显示以下错误:[objectProgressEvent]。
我的请求是这样的,如果我构建托管在 localhost:8081 上的 Web 应用程序就可以工作:
getToken(username,password) {
var req = { username: username,password: password };
this.http.post(this.urlToken,req).toPromise().then((data) => {
document.getElementById("loader").style.display = "none";
for (let key in data) {
this.token = data[key]
localStorage.setItem('token',this.token);
}
if (void this.getIfActiveUser(username) != 84) {
localStorage.setItem('user',username);
this.authService.login();
}
}).catch((err: HttpErrorResponse) => {
document.getElementById("loader").style.display = "none";
this.getIfActiveUser(username)
console.error('An error occurred:',err.error);
document.getElementById("warning").style.display = "block";
if (err.error["non_field_errors"])
document.getElementById("warning").innerHTML = err.error["non_field_errors"];
if (err.error["username"])
document.getElementById("warning").innerHTML = err.error["username"]
if (err.error["password"])
document.getElementById("warning").innerHTML = err.error["password"]
});
}
解决方法
Android API 默认不允许明文通信。 (CleartextTrafficPermitted) 您可以选中 this answer 以允许它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。