0

这将返回一个 json 对象

http://developer.echonest.com/api/v4/artist/search?api_key=youAPIKey&name=radiohead

我试过这种方式,但没有奏效。

function cc() {
    jQuery.ajax({
        url: "http://developer.echonest.com/api/v4/artist/search?api_key=APIKey&name=radiohead",
        type: "POST",
        dataType: "json",
        async: false,
        success: function (data) {
            console.log(data);
        }
    });
}

我如何调用这个 url 并使用 java 脚本或 jquery 访问对象值。

4

2 回答 2

0

正如 MrCode 所建议的,当您的脚本在不同的域中运行时,您将需要使用 JSONP 来访问数据。

Echonest 支持 JSONP,使用formatcallback选项。您需要修改您的网址以包含该format选项。

http://developer.echonest.com/api/v4/artist/search?api_key=FILDTEOIK2HBORODV&name=radiohead&format=jsonp

如果您dataType将 ajax 选项中的选项修改为,jsonp则 jQuery 将附加一个callback参数,Echonest 将在将数据发送回您时使用该参数。然后,您可以根据需要访问成功处理程序中的数据。

不幸的是,您在问题中发布了您的 API 密钥,这意味着许多 Stack Overflow 用户可能正在查看您的链接,并搞砸了您的访问限制。您可能需要等待这个问题变得不受欢迎,然后您的速率限制再次下降。

于 2013-10-12T15:01:59.837 回答
0

由于Same Origin Policy,您无法访问不同域上的资源。

解决方案是通过与您的 Javascript 相同域上的服务器端脚本代理请求。JSONP是一个选项,但前提是第三方支持它。

于 2013-10-12T14:12:31.667 回答