在其他一些堆栈用户的帮助下,我想出了这个:
我想使用外部 json 文件并想出类似的东西:
我现在链接的文件是:http://www.lofiz.co.uk/afba/songkickwidget/testjsondata.json但这最终会变成 Songkick JSON 输出。
最佳答案
您是 same-origin policy 的受害者.出于安全原因,浏览器默认会阻止跨域获取的 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()
。我还冒昧地做了一些其他更改:
- 我修改了您定义月份名称数组的方式,以使其更具可读性。 JavaScript 中的
.getDay()
用于返回星期几(0 = 星期日,1 = 星期一,依此类推),因为我相信你想要一个月中的第几天,你应该使用.getDate()
代替。请参阅我的 JSFiddle。
关于javascript - getJSON 错误 - 不确定我哪里出错了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10367510/