如何调用外部json url并访问它的值

时间:2013-10-12 14:03:55

标签: javascript ajax json jquery

这将返回一个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访问对象值。

2 个答案:

答案 0 :(得分:0)

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

解决方案是通过与Javascript相同的域上的服务器端脚本代理请求。 JSONP是一个选项,但只有在第三方支持的情况下才能使用。{/ p>

答案 1 :(得分:0)

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

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

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

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

很遗憾,您已在自己的问题中发布了API密钥,这意味着很多Stack Overflow用户可能会查看您的链接,并限制您的访问限制。在速率限制再次下降之前,您可能需要等待此问题变得不受欢迎。