只是尝试使用AngularJS在Ionic中获取数据(来自我的个人api),这给了我这个错误......
TypeError: Cannot read property 'data' of undefined
。
如果我没记错的话,几个星期前就已经工作了,(另一个项目让我平时被占用了),现在却没有。
这是我的 resources.js 我有这个工厂
.factory('Leaderboard', function($http) {
var Leaderboard = {
async: function() {
var promise = $http.get('http://www.nmdad3.local/app_dev.php/api/v1/leaderboards').then(function (response) {
console.log(response);
return response.data;
});
return promise;
}
};
return Leaderboard;
});
在我的 controller.js 中,我有这个
.controller('LeaderbCtrl', function($scope, Users, Leaderboard) {
$scope.users = Users.query();
// Call the async method and then do stuff with what is returned inside our own then function
Leaderboard.async().then(function(d) {
$scope.stats = d;
});
})
在 html 中,我只是致电:
<ion-view view-title="Leaderboard" ng-controller="LeaderbCtrl">
<ion-content class="">
<ul class="list leaderboardCard">
<li class="item" ng-repeat="lb in stats">
#{{$index + 1}} {{ lb.user.username }} <span>{{ lb.completed }}</span>
</li>
</ul>
</ion-content>
</ion-view>
如果我在后端(symfony应用程序)中禁用安全性,它可以正常工作..但是我仍然需要这些登录和安全措施。我使用Symfony和NelmioCORSBundle来实现这一目标 在我的 config.yml 中,我设置了这个...
nelmio_cors:
paths:
'^/api/':
allow_origin: '*'
allow_headers: ['X-Custom-Auth','Content-Type']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE', 'OPTIONS']
expose_headers: ['Location']
max_age: 3600
虽然我的api路径在流浪汉环境中是http://www.nmdad3.local/app_dev.php/api/v1/leaderboards