我正在尝试访问此JSON提要以获取Feed中的最后一项,这是当前在广播电台上播放的歌曲,因此我可以将其推送到流媒体播放器网络应用:
function getSongData(){
$.ajax({
url: 'http://cjzn.streamon.fm/metadata/recentevents/CJZN-48k.json',
dataType: 'jsonp',
success: function(data) {
var totalItems = data.length;
alert('Current song: ' + data[totalItems].TIT2);
},
error: function() {
alert('Unable to retrieve data');
}
});
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在使用data.length检索项目总数,这意味着该数字也是Feed中的最后一项.我能得到的只是错误信息!我知道我需要使用JSONP将数据传输到我的域,但老实说我不知道JSONP是否受支持这可能是罪魁祸首.如果是这样,我怎样才能获得Feed数据?
你应该.
更改
data[totalItems].TIT2
Run Code Online (Sandbox Code Playgroud)
至
data[totalItems-1].TIT2
Run Code Online (Sandbox Code Playgroud)
数组索引从0开始.因此您需要为最后一项执行length-1.data[totalItems]将超出界限,当您undefined.TIT2有效访问时,您将收到错误.
这个api似乎不支持JSONP.如果你使用jquery触发ajax,它会将一个回调字符串附加到jsonp回调的url.
例如:http://cjzn.streamon.fm/metadata/recentevents/CJZN-48k.json?callback = jQuery19105709207213949412_1373047199605&_ = 1373047199606
但响应并没有包含在具有回调名称的函数中,理想情况下响应应该是:
jQuery19105709207213949412_1373047199605(jsonData);
Run Code Online (Sandbox Code Playgroud)
但它没有,相反它只是给出了json响应.
| 归档时间: |
|
| 查看次数: |
6453 次 |
| 最近记录: |