No Image将仅从API加载未定义

时间:2014-04-07 22:45:38

标签: javascript html json image api

我遇到的主要问题是游戏的图像无法加载:它只是在运行搜索时一直说未定义。

我的第二个问题是我想将其更改为搜索;目前它有一个设定值,我想让用户输入自己的标题。

我已将我的代码链接到

下面
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

        <script>
        $(document).ready(function(){
            $.ajax({
              url: "http://api.giantbomb.com/search/",
              type: "get",
              data: {api_key : "key here", query: "star trek", resources : "game", field_list : "name, resource_type, image", format : "jsonp", json_callback : "gamer" },
              dataType: "jsonp"
            });
        });

        function gamer(data) {
              var table = '<table>';
              $.each( data.results, function( key, value ) {
                  table += '<tr><td>' + value.image + '</td><td>' + value.name + '</td><td>' + value.resource_type + '</td></tr>';
              });
              table += '</table>';
              $('#myelement').html(table);
        }

        </script>

    </head>
    <body>
        <h1>Game Search</h1>
        <input id="game" type="text" /><button id="search">Search</button>
        <div id="myelement"></div>
    </body>
</html>

2 个答案:

答案 0 :(得分:1)

改变了两件事:

  1. field_list : "name, resource_type, image"field_list : "name,resource_type,image"修复了图片&#39;为空。

  2. image返回一个对象:使用icon_urlmedium_urlscreen_urlsmall_urlsuper_url,{{1 }或thumb_url

  3. 请参阅此fiddle更改apiKey以进行测试

    tiny_url

答案 1 :(得分:0)

它似乎未定义,因为不仅仅是“图像”。

来自回复的json部分:

"image": {
    "icon_url": "http://static.giantbomb.com/uploads/square_avatar/10/103881/1711377-stp1.jpg",
    "medium_url": "http://static.giantbomb.com/uploads/scale_medium/10/103881/1711377-stp1.jpg",
    "screen_url": "http://static.giantbomb.com/uploads/screen_medium/10/103881/1711377-stp1.jpg",
    "small_url": "http://static.giantbomb.com/uploads/scale_small/10/103881/1711377-stp1.jpg",
    "super_url": "http://static.giantbomb.com/uploads/scale_large/10/103881/1711377-stp1.jpg",
    "thumb_url": "http://static.giantbomb.com/uploads/scale_avatar/10/103881/1711377-stp1.jpg",
    "tiny_url": "http://static.giantbomb.com/uploads/square_mini/10/103881/1711377-stp1.jpg"
  }

您需要将其称为value.image.medium_url并将其置于img标记中:

'<tr><td><img src="' + value.image.medium_url + '"/></td><td>'