【发布时间】:2015-07-31 07:29:23
【问题描述】:
上周一切顺利,当我在设备上运行应用程序或使用 Genymotion 进行模拟时,所有对 api 的调用都在工作(返回数据或失败,但至少显示了一些东西)。
我正在使用
ionic run android
我添加更新全局cordova ionic:
npm install -g cordova ionic
因为所有 $http 请求甚至都没有处理。当 Api 仍然工作正常且 CORS 设置完美时,我无法得到任何响应。
我发现的唯一方法是使用选项 --livereload 或 -l :
ionic run -l android
我想不惜一切代价避免使用 livereload。
我开始使用 ionic 1.0.0 和 cordova lib 4.3.0 从头开始创建一个项目。
angular.module('starter.controllers', [])
.controller('AppCtrl', function($scope, $ionicModal, $timeout, $http) {
alert('calling api');
// Create an anonymous access_token
$http
.get(domain+'/oauth/v2/token?client_id='+public_id+'&client_secret='+secret+'&grant_type=client_credentials')
.then(function(response){
alert(response.data.access_token);
});
})
所以在使用时:
ionic serve
它正确地警告“调用 api”,然后是响应(该示例的 OAuth 访问令牌)。
但是在使用时:
ionic run android
它只是提醒“调用 api”,但似乎没有处理 http 请求。
有没有人经历过类似的事情?我对此感到非常头疼。
【问题讨论】:
-
看看这个答案是否对你有帮助:stackoverflow.com/a/29916802/4412363
-
谢谢你,我现在试试,然后回复你。
-
好的,这正在工作!那么你想写一个链接到这篇文章的答案我很乐意验证它。
-
其实是重复的,但是你的问题本质上比较具体,这会导致人们在搜索这个问题时找到它,所以我将答案添加为
Community Wiki。 -
对于使用cordova 6.3.0 的我,我必须修改发出网络请求的.html 文件的
<meta>。如下,<meta http-equiv="Content-Security-Policy" content="default-src 'self' * data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">。我在'self'之后添加*然后它工作。或者更具体一些,但我也必须具体指定协议,即https://yourdomain.com并替换为*。
标签: angularjs cordova phonegap-build ionic