使用POST和GET通过端点交换数据

时间:2015-03-17 00:11:52

标签: javascript json post get spotify

我尝试使用Spotify's web API构建网络应用程序但是,我发现他们的教程缺乏。它的工作方式是使用POST和GET功能请求数据并使用JSON发回。似乎很容易,想获得有关艺术家的信息?只需拨打GET https://api.spotify.com/v1/artists/0OdUWJ0sBjDrqHygGUXeCF即可获得一份精美的JSON文档,其中包含有关所请求艺术家的信息。

问题是我不知道如何进行GET通话。 jQuery使用" data"来获取和发布方法。参数,但我不确定必要的语法,特别是在交换访问令牌的授权代码时。如果您访问Spotify's authorization guide并滚动到授权代码流程的第4步,您可以看到我需要对https://accounts.spotify.com/api/token进行POST调用。该调用必须具有3个请求主体参数和1个头参数,并且在连续时,具有适当数据的JSON文件位于响应主体中。

我的问题是如何进行具有正文参数和标题参数的POST和GET调用,以及如何在成功调用后从响应正文中提取JSON数据?

1 个答案:

答案 0 :(得分:0)

从他们的code examples & libraries和这个jsFiddle可以看出,他们的getUserData请求只不过是一个简单的ajax调用,它包含了他们的url和一个头对象(其中包含一个与之连接的前缀字符串) accessToken)作为参数:

    function getUserData(accessToken) {
        return $.ajax({
            url: 'https://api.spotify.com/v1/me',
            headers: {
               'Authorization': 'Bearer ' + accessToken
            }
        });
    }

通常,当您需要在$.ajax调用中传递参数时,只需执行如上所示,或者首先构造一个对象并将其包含在内:

YourObj = {
   url: "your url here",
   param2: "param val 2",
   param3: "param val 3",
   ...
}

$.ajax(YourObj).done(function(data){
   //do something with the returned data here, e.g.
   console.log("data: ", data);
});

如果您的参数依赖于其他不易获取的值,则此方法非常有用。