【问题标题】:flickr api, json and set listflickr api、json 和设置列表
【发布时间】:2014-10-13 15:09:36
【问题描述】:

我正在尝试从 json 提要中的“农场”值开始构建 url 到 photsets 的缩略图。我不明白为什么这不起作用..?

    <!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript">
function ajax_get_json(){
    var menu = document.getElementById("menu");
    var thumbURL = new XMLHttpRequest();
    thumbURL.open("GET", "http://api.flickr.com/services/rest/?&method=flickr.photosets.getList&api_key=797507e576c902b2ffb0c8494fb368ab&user_id=37003559@N03&format=json&jsoncallback=?", true);
    thumbURL.setRequestHeader("Content-type", "application/json", true);
    thumbURL.onreadystatechange = function() {
        if(thumbURL.readyState == 4 && thumbURL.status == 200) {
            var data = JSON.parse(thumbURL.responseText);
            menu.innerHTML = "";
            for(var obj in data){
                menu.innerHTML += data[obj].photosets.photoset.id+"<hr />";
            }
        }
    }
    thumbURL.send(null);
    menu.innerHTML = "requesting...";
}
</script>
</head>
<body>
<div id="menu"></div>
<script type="text/javascript">ajax_get_json();</script>

</body>
</html>

我错过了什么..?

【问题讨论】:

    标签: javascript json api flickr


    【解决方案1】:
    function ajax_get_json(){
        var menu = document.getElementById("menu");
        var thumbURL = new XMLHttpRequest();
        thumbURL.open("GET", "https://api.flickr.com/services/rest/?&method=flickr.photosets.getList&api_key=797507e576c902b2ffb0c8494fb368ab&user_id=37003559@N03&format=json&jsoncallback=process", true);
        thumbURL.onreadystatechange = function() {
            if(thumbURL.readyState == 4 && thumbURL.status == 200) {
                eval(thumbURL.responseText);
            }
        }
        thumbURL.send(null);
        menu.innerHTML = "requesting...";
    }
    
    function process(data) {
        var menu = document.getElementById("menu");
        menu.innerHTML = "";
        var sets = data.photosets.photoset;
        var max = sets.length;
    
        for(var i = 0; i < max; i++) {
            menu.innerHTML += sets[i].id+"<hr />"
        }    
    }
    

    http://jsfiddle.net/2BTrQ/10/

    【讨论】:

    • 太好了,谢谢,发挥了魅力...现在拉大拇指并将标题设置为漂亮的画廊。
    • 您好,感谢您的帮助,不幸的是我刚刚发现它与 IE 不兼容。这是我目前所处的位置的一个小提琴......@ 987654322@根本看不出问题是什么,我可以看到js中没有错误。任何帮助/建议将不胜感激。谢谢,文斯
    • 为什么这些小提琴不再起作用了? flickr 是否改变了访问它们的方式?
    • @ayjay 可能闪烁改变了他们的 api
    猜你喜欢
    • 2011-03-18
    • 2018-07-27
    • 2011-11-10
    • 2012-12-08
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    相关资源
    最近更新 更多