我在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>
谢谢!
答案 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,因为另一个没有条目)