0

我通常使用 Axios 来处理我的 API 请求,但由于某种原因,我在使用 Axios 访问外部 API 时遇到了问题。

另一方面,Fetch 可以很好地处理这个特定的请求。

我试图弄清楚我在这里做错了什么。

爱讯:

async function getToken(req, res) {

  const apiCreds = {
        'grant_type' : 'client_credentials',
        'client_id' : xxxxxxxxxxxx,
        'client_secret' : xxxxxxxxxxxx,
        'scope' : 'PublicAPI'
   }

  const header = {
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
        }
  }
    
  const token = await axios.post(`${process.env.URL}`,qs.stringify(apiCreds),header)
  
  res.status(200).json({'TokenData': token})
}

我尝试添加qs.stringify到对象主体,但这也不起作用。

拿来:

async function getToken(req, res) {
    
    const apiCreds = {
        'grant_type' : 'client_credentials',
        'client_id' : xxxxxxxxxxx,
        'client_secret' : xxxxxxxxxxxxx,
        'scope' : 'PublicAPI'
    }

    fetch(`${process.env.VS_URL}`, {
            method: 'post',
            body:    qs.stringify(apiCreds),
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
        })
        .then(res => res.json())
        .then(json => { res.status(200).json({'TokenData': json}) }); 
            
            
}

我真的很想知道我在这里做错了什么,所以如果可能的话我可以坚持使用一个包。

任何反馈表示赞赏!

4

1 回答 1

0

这完全是我的错!我没有意识到 API 调用实际上已经通过并且我收到了 JSON 循环错误!我只需要从 API 调用的结果中格式化数据。

res.status(200).json({'TokenData': token.data.access_token})
于 2021-03-31T22:12:39.623 回答