jQuery的JSON方法有问题

时间:2010-03-06 15:25:45

标签: javascript jquery json

$(function(){
    $.getJSON('http://ws.audioscrobbler.com/2.0/?method=user.getweeklyartistchart&user=ElicitBelief&api_key=25135a535781328243f9e31968abc14&format=json', function(data) {
      alert(data)
    });
});

Firebug说:GET http://ws.audioscrobbler.com/2.0/?method=user.getweeklyartistchart&user=ElicitBelief&api_key=25135a535781328243f9e31968abc14&format=json 200 OK 144ms并且网址为红色,因此根本不会提取数据。

我无法想象问题是什么。

3 个答案:

答案 0 :(得分:1)

据推测,该网址位于不同的域中。您需要使用JSONP并在查询中添加&jsoncallback=?。我假设audioscrobbler API支持这一点。

答案 1 :(得分:0)

访问该网址会给我一个文件,上面写着“无效的API密钥 - 您必须通过last.fm授予您有效密钥”

答案 2 :(得分:0)

根据该链接http://www.ibm.com/developerworks/library/wa-aj-jsonp1/,您必须添加一个 “&安培;回调=”在URL的末尾(原因是,jQuery在使用$ .getJSON时自动使用JSONP绕过AJAX跨域策略)。

因此,如果您将以下url传递给getJSON: http://ws.audioscrobbler.com/2.0/?method=user.getweeklyartistchart&user=ElicitBelief&api_key=25135a535781328243f9e31968abc14&format=json&callback=? 你将得到JSON respoonse:“无效的API密钥 - 你必须通过last.fm授予你一个有效的密钥”

选中此示例:JSBin(页面为空,但在Firebug控制台中查看请求)