我在 Songkick API 上使用 JSON 收集数据时遇到问题。我真的是 jQuery 和 Javascript 的新手,所以如果这看起来很粗糙,请原谅我。我花了一些时间试图研究我需要的正确语法,但我只是一直回到第一个方 block 。
我想做的是使用 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>
谢谢!
最佳答案
对不起,我花了这么长时间才回来,我在你昨晚回复的时候离开了办公室
这是我想出的:
$(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,因为另一个没有条目)
关于javascript - 使用 JQuery 的 Songkick API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8978141/