2012-04-28 91 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

相關問題