2013-12-21 3 views
1

내가 얻은 데이터를 표시하려고 할 때 문제가 있습니다. 내가 할각도를 사용하여 flickr에서 json을 표시 할 수 없습니다.

$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: "[email protected]", 
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와 동일한 json 파일을 ajax 할 수 있기 때문에 잘못된 것이 무엇인지 잘 모릅니다. 아무도 도와 줄 수 있습니까?

+0

나는 이것이 중복 된 것 같아요 : http://stackoverflow.com/questions/12066002/parsing-jsonp-http-jsonp-response-in-angular-js – Neikos

+0

방금 ​​개인 api 키를 게시 했습니까? 공개되지 않는다면? Flickr에 대해 잘 모르겠습니다. – Neikos

+0

@Neikos 도움이되지 않지만, thx. 또한 귀하의 생각을 상기시키기 위해 API 키를 숨 깁니다. – user3125499

답변

2

$http.get 메서드를 사용하고 있습니다. 사용중인 flickr API는 JSONP 형식을 반환합니다. 이것이 코드가 작동하지 않는 것처럼 보입니다. 이 경우 올바른 방법으로 원래 응답을 확인하십시오.

이전 답변 : $http 문서에서

, 전화는 JSON_CALLBACK의 문자열을 포함한다.

당신이 없습니다.

정확한 URL은 다음과 같아야합니다

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; 

}) 
+0

당신의 방법을 시도했지만 여전히 같은 문제가 있습니다. 데이터를 가져 와서 모두 표시 할 수 있습니다.하지만 원하는 데이터 (예 : data.photos.photo.id)를 설정하려고하면 정의되지 않은 상태가 계속 표시됩니다. – user3125499

+0

plunkr이 추가되었습니다. 키를 자신의 키로 바꾸면 작동합니다. – Neikos

+0

그것은 작동하지만 !!! 나는 여전히 내가 어디에서 잘못했는지 모른다. 코드와 광산 모두에서 동일한 URL을 사용하지만 코드가 작동하지 않습니다. 내 코드에서 실수 한 것을 보았습니까? Thx 대단히. – user3125499

관련 문제