如何在firebase功能中使用Axios正确发送Post请求



我在尝试使用axios发送帖子请求时遇到了麻烦,我想知道是否有人有意见。

let grant_type: string = 'authorization_code'
await axios
.post(
url,
{
client_id: client_id,
client_secret: client_secret,
grant_type: grant_type,
redirect_uri: redirect_uri,
code: code,
},
{
headers: { 'Content-Type': 'application/x-www.form-urlencoded' },
},
)
.then((response) => {
functions.logger.log('---Response---')
functions.logger.log(response)
return response
})
.catch((error) => {
functions.logger.log(error)
return error
})

我得到的错误是

error_description: 'The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed. Check the "grant_type" parameter.'

如果有人能帮上忙,那就太棒了。我不知所措,我已经尝试过使用poster的api调用,一切都很好,但当我尝试使用firebase函数时,它不起作用。

谢谢!

问题已解决!!!!!

我不得不使用qs.stringify作为身体参数,当我自己试图解决这个问题时,我在一些帖子上看到了这一点,但它给了我错误,stringify不是一个函数。。为了修复我从导入语句更改为需求语句的问题

下面是代码!

const qs = require('qs')
var data = qs.stringify({
code: code,
client_id: client_id,
client_secret: client_secret,
grant_type: 'authorization_code',
redirect_uri: redirect_uri,
})
var config: any = {
method: 'post',
url: url,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
data: data,
}
axios(config)
.then(function (response) {
functions.logger.log(JSON.stringify(response.data))
})
.catch(function (error) {
functions.logger.log(error)
})

相关内容

  • 没有找到相关文章