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

Using POST and GET to Exchange Data Through Endpoints

本文关键字:端点 交换 数据 POST GET 使用      更新时间:2023-09-26

我正在尝试使用Spotify的网络API构建一个Web应用程序,但是,我发现缺少他们的教程。它的工作方式是使用 POST 和 GET 功能请求数据并使用 JSON 发回。看起来很简单,想获得有关艺术家的信息吗?只需调用 GET https://api.spotify.com/v1/artists/0OdUWJ0sBjDrqHygGUXeCF,您就会得到一个不错的 JSON 文档,其中包含有关所请求艺术家的信息。

问题是我不知道如何进行GET调用。 jQuery 有带有"data"参数的 get 和 post 方法,但我不确定必要的语法,尤其是在交换访问令牌的授权代码时。如果您访问 Spotify 的授权指南并滚动到授权代码流的步骤 4,您可以看到我需要对 https://accounts.spotify.com/api/token 进行 POST 调用。调用必须具有 3 个请求正文参数和 1 个标头参数,并且在继承时,响应正文中会有一个包含相应数据的 JSON 文件。

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

正如你从他们的代码示例和库以及这个jsFiddle中看到的那样,他们的getUserData请求只不过是一个简单的ajax调用,其中包含它们的url和一个headers对象(其中包含与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);
});

如果您的参数依赖于不那么容易获得的其他值,则此方法可能很有用。