getJSON 错误 - 不知道哪里出错了
Posted
技术标签:
【中文标题】getJSON 错误 - 不知道哪里出错了【英文标题】:getJSON error - not sure where I'm going wrong 【发布时间】:2012-05-09 04:45:09 【问题描述】:在其他一些堆栈用户的帮助下,我想出了这个:
http://jsfiddle.net/9ywLq/
我想使用一个外部 json 文件并想出类似的东西:
http://jsfiddle.net/RCB9M/
我现在链接的文件是:http://www.lofiz.co.uk/afba/songkickwidget/testjsondata.json,但这最终会变成一个 Songkick JSON 输出。
【问题讨论】:
【参考方案1】:您是same-origin policy 的受害者。出于安全原因,浏览器默认会阻止跨域获取的 JSON。如果您需要跨域获取数据,则必须实现服务器端代理,或者使用JSONP(如果数据也以该格式提供)。如果源没有提供 JSONP 格式的数据,我相信你可以使用YQL 来转换它。
关于 JSONP 的资源:@987654324@
更新:你的 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。
【讨论】:
感谢您这么快的回答,我在 Songkicks 网站 (songkick.com/developer/upcoming-events-for-artist) 上读到了相关信息。这个 URL 合适吗(api.songkick.com/api/3.0/artists/253846/…),如果合适的话,你能在 jsfiddle 链接上告诉我吗? 谢谢你,我想我现在清楚一点了——我希望能够及时正确地学习这个。所以目前我有这个:jsfiddle.net/Pr2GU JSLint 说 var month = new Array(); 中有一个错误。行,但我不明白如何使它工作。 @redditor 将var month = new Array();
更改为var month = [];
,你应该没问题。你的方法也是正确的,但是 JSLint 更喜欢数组文字表示法。
我想我现在理解了 getJSON,您是否可以使用正确的 getJSON 调用方式为我编辑它?谢谢jsfiddle.net/9ywLq
@redditor 我已经用一个使用.getJSON()
的工作小提琴再次更新了我的答案,并且还进行了一些其他改进。以上是关于getJSON 错误 - 不知道哪里出错了的主要内容,如果未能解决你的问题,请参考以下文章
getJSON 在 chrome 上本地加载 json 数据文件时出错 [重复]
请问这段python代码哪里出错了,错误代码:ValueError: invalid literal for int() with base 10: ','?