使用 Cordova 的 android 模拟器上的 Angular 应用的 HTTP 请求失败
HTTP Request failed on Angular app on android emulator with Cordova
我正在尝试在使用 Cordova 构建的 Angular 应用程序上访问托管在 http://localhost:8080 上的网络服务器。我可以在我的模拟器上使用导航器访问服务器,但我从未收到来自应用程序本身的任何请求,它只是失败并出现以下错误:[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)
您可以检查 以允许它。
我正在尝试在使用 Cordova 构建的 Angular 应用程序上访问托管在 http://localhost:8080 上的网络服务器。我可以在我的模拟器上使用导航器访问服务器,但我从未收到来自应用程序本身的任何请求,它只是失败并出现以下错误:[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)
您可以检查