我正在使用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)上的最后一首歌。有什么建议吗?
您正在检索jsonp
,而不是json
因此您需要使用具有正确dataType
设置的$.ajax
。试试这个:
$.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...
});
});