2010-07-16 38 views
1

我使用的jQuery的Last.fm API如下請求返回錯誤的文件,從到Last.FM API

missing ; before statement 
[Break on this error] <lfm status="ok">\n 

點擊錯誤將我帶到從請求返回的文件。誤差在2號線發生的(其實有更多的賽道對象,但我只包括一個長):

<?xml version="1.0" encoding="utf-8"?> 
<lfm status="ok"> 
    <weeklytrackchart user="RJ" from="1278244800" to="1278849600"> 
     <track rank="1"> 
      <artist mbid="309c62ba-7a22-4277-9f67-4a162526d18a">Beck</artist> 
      <name>Mixed Bizzness</name> 
      <mbid></mbid> 
      <playcount>2</playcount> 
      <image size="small">http://userserve-ak.last.fm/serve/34/442288.jpg</image> 
      <image size="medium">http://userserve-ak.last.fm/serve/64/442288.jpg</image> 
      <image size="large">http://userserve-ak.last.fm/serve/126/442288.jpg</image> 
      <url>www.last.fm/music/Beck/_/Mixed+Bizzness</url> 
     </track> 
    </weeklytrackchart> 
</lfm> 

所以誤差在返回的文件,我該如何處理呢?謝謝閱讀。

回答

3

這裏有一些錯誤。

首先,我認爲JSONCallback=?參數在請求url的末尾應該只是callback=?。雖然容易混淆的jQuery docs顯示您的示例代碼的方式,但不是在主體文字...

的另一件事是,你正在使用的getJSON方法,而Last.fm的API返回的XML,所以jQuery的試圖將返回的XML解析爲JSON,這顯然不能做到。

所以,你需要指定你想回JSON作爲迴應,這似乎工作:

$.getJSON('http://ws.audioscrobbler.com/2.0/?callback=?', { 
    method: "user.getweeklytrackchart", 
    user: "rj", 
    api_key: "fb04ae401284be24afba0fbc2f4b0efb", 
    format: "json" 
}, function(data) { 
    console.log(data); 
}); 

你將能夠看到在Firebug控制檯返回的JSON對象,並以檢查看看你想使用哪些數據。希望這可以幫助!

+0

這完美的作品!非常感謝您的幫助,我非常感謝。 – ben 2010-07-16 13:18:34