【问题标题】:getJSON error - not sure where I'm going wronggetJSON 错误 - 不知道哪里出错了
【发布时间】: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 输出。

【问题讨论】:

    标签: javascript json jquery


    【解决方案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()。我还冒昧地进行了一些其他更改:

    1. 我修改了您定义月份名称数组的方式,使其更具可读性。
    2. 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() 的工作小提琴再次更新了我的答案,并且还进行了一些其他改进。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多