我试图显示我得到的数据时遇到问题。 这是我的代码:
$http({
method:'get',
format:'json',
url:'http://api.flickr.com/services/rest/?method=flickr.photos.getRecent&api_key=MyAPI&per_page=30&format=json',
}).success(function(data, status, headers, config){
$scope.photoID = data;
alert($scope.photoID)
})
我得到的Json文件:
jsonFlickrApi(
{
photos: {
page: 1,
pages: 34,
perpage: 30,
total: 1000,
photo: [
{
id: "11480313795",
owner: "80249365@N00",
secret: "d4950d1c38",
server: "5482",
farm: 6,
title: "5DM38945",
ispublic: 1,
isfriend: 0,
isfamily: 0
},.....
在这种情况下,它可以在警报窗口中显示整个json文件。 但是,当我想获取某些特定数据(如页面或照片ID)时,它只会在控制台中显示未定义甚至错误。
$http({
method:'get',
dataType:'jsonp',
url:'http://api.flickr.com/services/rest/?method=flickr.photos.getRecent&api_key=MyAPI&per_page=30&format=json&jsoncallback=?',
}).success(function(data, status, headers, config){
$scope.photoID = data.photos.page;
alert($scope.photoID);
})
我可以用Jquery ajax相同的json文件,所以我不知道出了什么问题。 有人可以帮帮我吗?
答案 0 :(得分:2)
您正在使用$http.get
方法。您正在使用的flickr api会返回JSONP格式。这似乎使您的代码无法正常工作。在这种情况下,请查看我的原始答案,以便正确处理此问题。
上一个答案:
从$http文档中,您的调用必须包含JSON_CALLBACK子字符串。
你的遗失。
正确的网址应为:
http://api.flickr.com/services/rest/?method=flickr.photos.getRecent&api_key=MyAPI&per_page=30&format=json&jsoncallback=JSON_CALLBACK
修改强>
这是一个带有测试用例的plunkr
http://plnkr.co/edit/MUMnHML5QtDJTthmtZ2Y?p=preview
代码:
$http.jsonp("http://api.flickr.com/services/rest/?method=flickr.photos.getRecent&api_key=KEY&per_page=30&format=json&jsoncallback=JSON_CALLBACK")
.success(function(data) {
$scope.data = data.photos;
})