2010-03-06 21 views
0
$(function(){ 
    $.getJSON('http://ws.audioscrobbler.com/2.0/?method=user.getweeklyartistchart&user=ElicitBelief&api_key=25135a535781328243f9e31968abc14&format=json', function(data) { 
     alert(data) 
    }); 
}); 

Firebug說:GET http://ws.audioscrobbler.com/2.0/?method=user.getweeklyartistchart&user=ElicitBelief&api_key=25135a535781328243f9e31968abc14&format=json 200 OK 144ms和URL是紅色的,所以它可以假定沒有獲取數據。jQuery的JSON方法的問題

我想不出是什麼問題。

+0

與頁面是否是相同的域? – cletus

回答

1

想必網址是不同的域。您需要使用JSONP並將&jsoncallback=?添加到您的查詢中。我假設audioscrobbler API支持這一點。

0

訪問該網址給我,說,一個文件「無效的API密鑰 - 您必須授予一個有效的密鑰last.fm」

+0

嗯 - 我希望他在發佈代碼時更改密鑰。 – tvanfosson

0

根據該鏈接http://www.ibm.com/developerworks/library/wa-aj-jsonp1/,您必須添加一個 「& callback =?」在你的URL的末尾(原因是,jQuery在使用$ .getJSON時自動使用JSONP來繞過AJAX跨域策略)。

所以,如果你通過以下網址的getJSON: http://ws.audioscrobbler.com/2.0/?method=user.getweeklyartistchart&user=ElicitBelief&api_key=25135a535781328243f9e31968abc14&format=json&callback=? 你會得到JSON respoonse着:「無效的API密鑰 - 您必須授予last.fm一個有效的密鑰」

檢查本作試玩:JSBin(頁面爲空,但在Firebug控制檯中查看請求)