我已尝试在StackOverflow上搜索此问题,但找不到适合我的解决方案。我正在使用AngularJS。我有简单的控制器调用http服务并读取响应数据。在这种特定情况下,我有一个JSON输出,其中包含一个我无法读取的对象数组。
这里是JSON输出:
{
"results": [{
"id": "1",
"download_url": "",
"uploader": {
"id": "114899"
},
"uploaded": "1442599380",
"streaming_url_timeout": 1446092554
}, {
"id": "2",
"download_url": "",
"uploader": {
"id": "114899"
},
"uploaded": "1442599380",
"streaming_url_timeout": 1446092554
}]
}
我试图访问'结果'中的项目。这是我的服务,它检索JSON数据:
this.getUData = function() {
var deferred = $q.defer();
$http.jsonp(API_URL + 'udata')
.success(function(data) {
deferred.resolve(data);
})
.error(function(data) {
deferred.reject(data);
});
return deferred.promise;
}
然后这是我从我的控制器调用此服务的方式:
myservices.getUData().then(function(data) {
$scope.uitems = data.results;
});
模板:
<div class="item" href="#" ng-repeat="item in uitems">
<h2>{{item.id}}</h2>
</div>
但是当我尝试访问&#39;结果&#39;中的项目时,我收到以下错误:
Uncaught SyntaxError: Unexpected token :
此错误的相关行是"results":[
答案 0 :(得分:0)
在这种情况下,回调函数在PHP服务器上运行不正常,所以我设法通过使用&#39; GET&#39; $ http服务中的方法如下:
this.getUData = function() {
var deferred = $q.defer();
$http({method: 'GET', url: API_URL + 'udata'})
.success(function(data) {
deferred.resolve(data);
})
.error(function(data) {
deferred.reject(data);
});
return deferred.promise;
}