2012-04-28 73 views

回答

2

您是same-origin policy的受害者。出于安全原因,浏览器将默认阻止跨域提取的JSON。如果您需要跨域获取数据,则您必须实施服务器端代理,或者使用JSONP(如果数据也以该格式提供)。如果源代码不以JSONP提供数据,我相信你可以利用YQL来转换它。

资源上JSONP:http://www.ibm.com/developerworks/library/wa-aj-jsonp1/

更新:您的网址将被称为像这样:

​$(function(){ 
    var url = "https://api.songkick.com/api/3.0/artists/253846/calendar.json?apikey=HlgKnFaq9qYO1h9T&jsoncallback=?"; 
    $.getJSON(url, function(data){ 
    // Do what you want to do with the return data within this callback 
    console.log(data);   
    }); 
});​ 

更新2:

我已经更新您的JSFiddlegetJSON()工作。我也冒昧地作了一些其他更改:

  1. 我修改了如何定义月份名称数组,以使其更具可读性。
  2. .getDay()在JavaScript中用于返回星期几(0 =星期日,1 =星期一等),因为我相信您希望每月的某一天,您应该使用.getDate()代替。看到我的JSFiddle。
+0

感谢您回答这么快,我已经阅读了关于Songkicks网站(http://www.songkick.com/developer/upcoming-events-for-artist)。这个URL是否合适(https://api.songkick.com/api/3.0/artists/253846/calendar.json?apikey=HlgKnFaq9qYO1h9T&jsoncallback=?),如果能的话,你可以告诉我的jsfiddle链接? – redditor 2012-04-28 21:17:24

+0

@redditor查看我更新后的答案,了解如何调用该URL。 – 2012-04-28 21:33:47

+0

谢谢你,我认为我现在有点清楚了 - 我希望能够及时学会这一点。所以目前我有这个:http://jsfiddle.net/Pr2GU/ JSLint说var month = new Array()中有一个错误;但我不明白如何使其工作。 – redditor 2012-04-28 21:41:42

相关问题