【问题标题】:Songkick API Using JQuery使用 JQuery 的 Songkick API
【发布时间】:2012-01-23 20:31:15
【问题描述】:

我在 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>

谢谢!

【问题讨论】:

  • 您申请了API密钥吗?这是它工作所必需的,它应该代替 {apikey}
  • 我做到了,是的,我不想把它放在这里,以防它被未经授权使用

标签: javascript jquery json api getjson


【解决方案1】:

对不起,我花了这么长时间才回来,我离开办公室的时间大约是你昨晚回复的时间

这是我想出的:

  $(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,因为另一个没有条目)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 2012-04-16
    • 1970-01-01
    • 2013-08-10
    • 2017-10-24
    • 1970-01-01
    相关资源
    最近更新 更多