【问题标题】:Using POST and GET to Exchange Data Through Endpoints使用 POST 和 GET 通过端点交换数据
【发布时间】:2015-03-17 00:11:52
【问题描述】:

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

问题是我不知道如何进行 GET 调用。 jQuery 具有带有“数据”参数的 get 和 post 方法,但我不确定必要的语法,尤其是在为访问令牌交换授权代码时。如果您访问 Spotify's authorization guide 并滚动到授权代码流程的第 4 步,您会看到我需要对 https://accounts.spotify.com/api/token 进行 POST 调用。该调用必须具有 3 个请求正文参数和 1 个标头参数,并且在后续的响应正文中包含一个带有适当数据的 JSON 文件。

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

【问题讨论】:

    标签: javascript json post get spotify


    【解决方案1】:

    从他们的code examples & libraries 和这个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);
    });
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-21
      • 2019-01-09
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      相关资源
      最近更新 更多