1

在其他一些堆栈用户的帮助下,我想出了这个:

http://jsfiddle.net/9ywLq/

我想使用一个外部 json 文件并想出类似的东西:

http://jsfiddle.net/RCB9M/

我现在链接的文件是:http ://www.lofiz.co.uk/afba/songkickwidget/testjsondata.json但这最终会变成一个 Songkick JSON 输出。

4

1 回答 1

2

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

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

更新:您的 URL 将被称为:

​$(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:

我已更新您的JSFiddle以使用getJSON(). 我还冒昧地进行了一些其他更改:

  1. 我修改了您定义月份名称数组的方式,使其更具可读性。
  2. .getDay()在 JavaScript 中用于返回星期几(0 = 星期日,1 = 星期一等等),因为我相信你想要一个月中的哪一天,你应该使用它.getDate()来代替。请参阅我的 JSFiddle。
于 2012-04-28T21:06:03.990 回答