使用 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) 您可以检查 以允许它。