【问题标题】:spotify api returns 400spotify api 返回 400
【发布时间】:2021-04-14 05:52:38
【问题描述】:

我正在使用 spotify api 实现搜索功能。 但是,如果您现在请求 get 到 api,将返回 400。 我希望你能帮我解决这个问题。

    axios({
        headers: {  
            "Authorization": `Bearer ${token}`
        },
        method: 'GET',
        url: 'https://api.spotify.com/v1/search',
        qs: {
            q: value,
            type: 'album',
        },
    }).then((res) => {
        console.log(res);
    }).catch(err => {
        console.log(err);
    })

【问题讨论】:

  • 我相信如果您收到 400 响应,那么响应正文应该包含有关错误请求原因的更多信息。您还可以将完整的回复正文添加到您的问题中吗?
  • umm.. 可以告诉你api文档需要的参数值吗?
  • 我不确定你的意思。我只是说如果你得到的 http 代码是 400,那么你至少应该得到错误的描述,根据 Spotify 的 doco。你看到错误描述是什么了吗? developer.spotify.com/documentation/web-api/#response-schema
  • 就是这样。请求失败,状态码 400
  • 我认为您的qs 属性应该是params。见github.com/axios/axios#request-config。 axios 没有qs 请求配置选项

标签: reactjs axios spotify


【解决方案1】:
const options = {
            method: 'GET',
            url: `https://api.spotify.com/v1/search?q=${value}&type=album`,
            headers: {
                'Authorization': `Bearer ${token}`,
                "Accept": "application/json",
                "Content-Type": "application/json",
            }
        }
         axios(options).then((res)=>console.log(res))
        .catch(err=>console.error(err))
        

【讨论】:

  • 虽然这对于简单值可能是正确的,但最好使用 params 对象来确保正确编码查询参数(顺便说一句,我没有反对)
  • @Phil 我同意你的观点,因为 op 有 2 个参数(其中一个也是固定的),所以我只是将它们全部写在一行中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-19
  • 1970-01-01
  • 2017-10-19
  • 2015-11-13
  • 2013-11-14
  • 2012-06-22
  • 2021-08-08
相关资源
最近更新 更多