使用JQuery的Songkick API

时间:2012-01-23 20:31:15

标签: javascript jquery json api getjson

我在Songkick API上使用JSON收集数据时遇到问题。我是jQuery和Javascript的新手,所以请原谅我,如果这看起来很粗糙。我花了一些时间来研究我需要的正确语法,但我只是在第一个方向上重新开始。

我尝试做的是使用jQuery发出请求,然后将结果添加到列表中的HTML中。任何人都可以给我的任何帮助都会很棒。

这是我到目前为止所拥有的。

<script>
$.getJSON("http://api.songkick.com/api/3.0/artists/3950031/calendar.json?apikey={apikey}",
function(data){
var events = data['resultsPage']['results']['event'];
for (var i=0;i < events.length; i++) {


$("#events").append('<li><a
href="'+events[i]['uri'])+'">'+events[i]['displayName']+'</a></li>');
}

}); 

</script>

谢谢!

1 个答案:

答案 0 :(得分:2)

抱歉,我花了这么长时间才回来,我离开了办公室关于你昨晚回复的时间

这是我想出的:

  $(document).ready(function() {
  $.ajax({
  url:  "http://api.songkick.com/api/3.0/artists/480448/calendar.json?apikey=APIKEY&jsoncallback=?",
  dataType:   "jsonp", // <== JSON-P request
  success:    function(data){ 
    $.each(data["resultsPage"]["results"]["event"], function(i, entry){
        $("#events").append('<li><a href="' + entry.uri+'">'+entry.displayName +'</a></li>');
    });
  }     
  });
  });

我认为您遇到的问题是使用JSON,JSON受制于相同的原始政策(我在此处阅读($.getJSON not working)。相反,您必须使用JSON-P添加

   &jsoncallback=?
URL末尾的

告诉Songkick将其作为JSON-P请求发送。这是主要问题。

其他问题包括次要的编码错误:有一个额外的(在你的追加字符串中,我也使用$ .Each作为for循环的一个,但要么会工作,希望这有帮助,你可能想要关闭你的API代码如果修复工作:)只需将API密钥更改为您的密钥,它应该没问题(我也将乐队更改为chevelle,因为另一个没有条目)