1

我正在使用 jQuery 在我的网站上显示 last.fm 数据。在这种情况下,我尝试使用以下代码在我的 last.fm 个人资料中显示我的最后一首歌:

$.getJSON('http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=joaoramos&api_key=a72cc897d849cfbff9a677871699e3f2&limit=1&format=json&callback=?', function(data) {

    track = data.recenttracks.track[0];

    var artist  = track.artist['#text'],
        song    = track.name,
        url     = track.url,
        src     = track.image[3]['#text'];

    if (src == '' || src == null || src == 'undefined') {
        var src = 'http://joao.pt/wp-content/themes/joaoramos/img/music.jpg';
    }

    $('#lastfm a').attr('href', url);
    $('#lastfm a').attr('title', 'Last song scrobbed on Last.fm: <em>'+song+'</em> by '+artist);
    $('#lastfm a img').attr('alt', song+' by '+artist);
    $('#lastfm a img').attr('src', src);

});

我可能没有在 JSON 对象中使用正确的路径(有时我会收到Uncaught TypeError: Cannot read property 'artist' of undefined控制台错误,但并非总是如此),因为大多数情况下,我网站上三个圆圈中的第三个圆圈上没有显示任何内容(即第一个Dribbble 上的最后一个镜头,Flickr 上的第二个镜头,last.fm 上的最后一首歌)。有什么建议么?

4

1 回答 1

1

您正在检索jsonpjson因此您需要使用$.ajax正确的dataType设置。尝试这个:

$.ajax({
    url: 'http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=[USERNAME]&api_key=[APIKEY]&limit=1&format=json&callback=?', 
    dataType: 'jsonp',
    success: function(data) {
        // your current code here...    
    });
});
于 2012-12-03T09:51:45.790 回答