访问Flickr API的问题

时间:2016-02-12 16:22:55

标签: javascript jquery json flickr

我正在创建一个Web应用程序,要求用户输入一些关键字/标签,查询Flickr API(JSON),然后显示包含这些标签的照片列表。我不断收到下面照片中显示的错误,并且没有得到Flickr的任何回复(空响应)。

issues page

有谁知道这里发生了什么?我认为这与Same-Origin政策有关。

以下是我的脚本代码:

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);

1 个答案:

答案 0 :(得分:0)

在flickrURL字符串中,您有“format = jsonp”但jsonp不是可用选项,您应该使用“format = json”。

此外,您的api密钥似乎由Flickr的Explore提供,并且有效期为一天。您可以在flickr.com中请求permament API密钥。

https://www.flickr.com/groups/api/discuss/72157663968579450/

的更多信息