2010-07-16 39 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