微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

向GET提出GET请求

如何解决向GET提出GET请求

我正在尝试向公共Spotify播放列表发出get请求以获取关注者人数,然后将其注入div的内部HTML中。就这么简单。

我一般来说对API和JS还是有点陌生​​,所以我想问问是否有人要看看我在做什么错。

JS代码如下:

const updateSpotify = (function() {

const clientId = 'aa81a434672045ccb5c9b40029359183';
const clientSecret = '456aea5802484cc5b83e35e05a40c623';

const _getToken = async () => {

    const result = await fetch('https://accounts.spotify.com/api/token',{
        method: 'POST',headers: {
            'Content-Type' : 'application/x-www-form-urlencoded','Authorization' : 'Basic ' + btoa(clientId + ':' + clientSecret)
        },body: 'grant_type=client_credentials'
    });

    const data = await result.json();
    return data.access_token;
}

const _getPlaylist = async (token) => {

    const result = await fetch(`https://api.spotify.com/v1/playlists/1Vt3ahELCdZ6tEAYUy8mNy`,{
        method: 'GET',headers: { 'Authorization' : 'Bearer ' + token}
    });

    const data = await result.json();
    document.getElementById("followers").innerHTML = data.followers.total;
    document.getElementById("cover-image").src = data.images.total;
    return data;
}

_getPlaylist(_getToken()); });

在HTML页面上,我试图像这样在加载时调用函数

<body class="overview" onload="updateSpotify();">

但是开发人员工具给我一个400错误。来自Spotify:

400错误的请求-由于语法格式错误,服务器无法理解该请求。邮件正文将包含更多信息;请参阅响应模式。


有人能看到这里出了什么问题吗?

解决方法

尝试使用curl并查看它是否有效:

curl -X GET "https://api.spotify.com/v1/playlists/1Vt3ahELCdZ6tEAYUy8mNy" -H "Authorization: Bearer {your access token}"

我认为您代码中的问题是_getToken()返回的是Promise而不是token的值。尝试像这样呼叫_getPlaylist

_getToken().then(function(token) {
  _getPlaylist(token);
})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。