我在Songkick API上使用JSON收集数据时遇到了问题。我是jQuery和Javascript的新手,所以如果这看起来很粗糙,请原谅我。我花了一些时间来研究我所需要的正确语法,但我总是从头开始。
我尝试做的是使用jQuery发出请求,然后将结果添加到我的超文本标记语言列表中。任何人能给我的任何帮助都会很棒。
这是我到目前为止所掌握的。
<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>谢谢!
发布于 2012-01-24 23:24:03
对不起,我花了这么长时间才回来,我是在你昨晚回复的时候离开办公室的。
这是我想出来的:
$(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 Key改为你的key就可以了(我也把band改成了chevelle,因为另一个没有条目)。
https://stackoverflow.com/questions/8978141
复制相似问题