2016-02-12 110 views
0

我正在創建一個Web應用程序,要求用戶輸入一些關鍵字/標籤,查詢Flickr API(JSON),然後顯示包含這些標籤的照片列表。我不斷收到下面的照片中顯示的錯誤,並沒有得到任何Flickr的響應(空響應)。訪問Flickr API的問題

enter image description here

有誰知道這是怎麼回事?我認爲這與同源政策有關。

下面是我的腳本代碼:

function loadData() { 

    var city = $("#city").val(); 
    var country = $("#country").val(); 


var flickrURL = "https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=cgtrey1a7cea9e78965a42f773f01928&tags=" + country + "," + city + "&format=json&nojsoncallback=1"; 

    $.getJSON(flickrURL,function(flickrData){ 

     var photoUrlArray = []; 

     for (var i = 0; i < flickrData["photos"]["photo"].length; i++) { 
      var photo = flickrData["photos"]["photo"][i]; 
      var photoId = photo["id"]; 
      var photoSecret = photo["secret"]; 
      var photoServer = photo["server"]; 
      var photoFarm = photo["farm"]; 

      var url = "https://farm" + photoFarm + ".staticflickr.com/" + photoServer + "/" + photoId + "_" + photoSecret + ".jpg"; 

      photoUrlArray.push(url); 
     }; 

     for (var i = 0; i < photoUrlArray.length; i++) { 
      var img = "<img id=\"flickr-image\" src=\""+ photoUrlArray[i] + "\">"; 
      $("flickr-conttainer").append(img); 
     }; 

    }).error(function(e){alert(e)}); 
}; 

$('#form-container').submit(loadData); 
+0

[問題請求Flickr的API]的可能的複製(http://stackoverflow.com/questions/35375781/issues-requesting-flickr-api) – emepe

回答

0

在你有「格式= JSONP」但JSONP是不是一個可行的選擇,你應該使用「格式= JSON」的flickrURL字符串。

此外,您的API密鑰似乎由Flickr的Explore提供,並且有效期爲一天。您可以在flickr.com上申請一個permament API密鑰。在https://www.flickr.com/groups/api/discuss/72157663968579450/

更多信息

+0

我已經嘗試過JSON,而不是JSONP,沒有工作 – Dxml

+1

如果你嘗試:https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=78ac01418165186ee9be695c61a5d53f&tags=argentina,rosario&format=jsonp&nojsoncallback=1你會得到: 如果您嘗試使用「format = json」,您將得到:「message」:「無效API密鑰(密鑰未找到)」 – emepe

+1

使用新的API key和format = json我得到了正確的結果:https://api.flickr.com/se rvices /休息/?方法= flickr.photos.search&API_KEY = cfcaec1a7cea9e50802a42f842f09575及標籤=阿根廷,羅薩里奧&格式= JSON&nojsoncallback = 1 – emepe