我的基于Ionic的应用在我的真实设备上使用ionic run android
进行部署时可以正常工作。但是,当我从Google Play下载完全相同的版本时,所有$ http请求都会失败:
09-15 18:59:02.901: I/chromium(22744): [INFO:CONSOLE(26799)] "Failed to log in user [...]:
{"data":null,
"status":-1,
"config": {
"method":"GET",
"transformRequest":[null],
"transformResponse":[null],
"url":"https://example.com/something",
"headers":{
"Accept":"application/json, text/plain, */*",
"Authorization":"Basic c2ltb2324Ghlbmlu5322Ng=="}
},
"statusText":""}",
source: file:///android_asset/www/lib/ionic/js/ionic.bundle.js (26799)
这是我用于请求的内容
$http.get(config.apiUrl + "/user/").then(function (response) {
}
callback && callback($rootScope.authenticated, response.data);
}, function (err) {
$log.info("Failed to log in user [...]: " + JSON.stringify(err));
});
该应用程序现在已经工作了一年,但自上次上传的版本以来,我遇到了这个问题。我没有更新离子或任何东西,我的构建环境根本不应该更改。如果我使用本地的APK,它确实可以在同一设备上运行,但不适用于Google Play ....
答案 0 :(得分:0)
天哪,我终于想通了这个帖子:https://stackoverflow.com/a/32030346/606513
实际上 - 生产版本启用了证书检查,而调试版本则没有。我的Web服务器的证书已过时(由于某种原因,letsencrypt续订无效)。更新证书解决了我所有的问题!