Ошибка в файле, возвращаемом из запроса к API Last.FM - PullRequest
1 голос
/ 16 июля 2010

Я использую Last.fm API с jquery следующим образом:

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

Я получаю следующую ошибку в Firebug:

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>

Итак, ошибка в возвращаемом файле, как мне поступитьс этим?Спасибо за чтение.

1 Ответ

3 голосов
/ 16 июля 2010

Здесь есть пара неправильных вещей.

Во-первых, я думаю, что параметр JSONCallback=?, который у вас есть в конце URL-адреса запроса, должен быть просто callback=?.Несмотря на то, что jQuery docs показывает ваш код в примере кода, но не в основном тексте ...

Другое дело, что вы используете метод getJSONAPI Last.fm возвращает 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);
});

Вы сможете увидеть возвращенный объект JSON в консоли Firebugи изучите его, чтобы увидеть, какие данные вы хотите использовать.Надеюсь, это поможет!

...