javascript - 从 JSON 获取缩略图

标签 javascript jquery html css

我需要此脚本才能从 Google API JSON 中提取缩略图,出于某种原因,它似乎无法正常工作。附上一个jsfiddle.l

        <div id="book-shelf">

        </div>
                    $(function() {
    var i=0;
    var googleApi = "https://www.googleapis.com/books/v1/volumes?q=edgar+allan+poe";
    var googleData;
    $.getJSON(googleApi, function(json) {
        googleData = json;

        setData()
    });

    function setData(){
        var j = googleData.length > (i + 9)  ? (i + 9) : googleData.length;
        for (; i < j; i++) {
            var googleThumb = googleData[i].thumbnail;
            var img = $('<img style="width: 250px; height: 250px;" src="' + googleThumb + '"/>')
            $('#book-shelf').append(img);
        }
    }       

    $('#load').click(function() {
        setData();
    }); 
});



        https://jsfiddle.net/mo7skwrj/

最佳答案

在 API URL 中,您保留了 callback=handleResponses,但这仅适用于您在代码中声明了此类函数的情况。使用此参数,您将收到 JSONP(对该函数的 JS 调用),而不是 JSON。

您可以删除它以获取 JSON(但在不支持 CORS 的旧版浏览器中它可能会失败),或者作为 @squint建议,将 API URL 中的 callback=handleResponses 替换为 callback=?,让 jQuery 处理回调。

你还需要改变这个:

googleData[i].thumbnail

进入这个:

googleData[i].volumeInfo.imageLinks.thumbnail

Fixed JSFiddle

关于javascript - 从 JSON 获取缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37393367/

相关文章:

javascript - 如何将链接添加到 "Title"或 "image"

javascript - 向 jQuery 对象添加新方法

javascript - 即使使用 HTTPS,WebRTC 屏幕捕获仍然不安全

javascript - 如何在不同的按钮上绑定(bind)功能?

javascript - 如何在 meteor 中的集合(cursor.observe Changes)中插入新记录时播放音频以通知

jquery - 如何在 Rails 上启用 Turbolinks 的情况下通过 AJAX 正确渲染部分内容?

jquery - 带有滑动动画的 Bootstrap 水平下拉菜单

javascript - 如何使用jquery格式化子输入的电话号码?

javascript - flexbox 对齐中心垂直和水平不能正常工作

html - 无法通过单击选择文本来选择特定的单选按钮选项