如何在 firebase 函数中使用 Axios 正确发送 Post 请求?
Posted
技术标签:
【中文标题】如何在 firebase 函数中使用 Axios 正确发送 Post 请求?【英文标题】:how to properly send a Post request with Axios in a firebase function? 【发布时间】:2022-01-21 06:47:36 【问题描述】:我正在尝试使用 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.'
如果有人可以提供帮助,那就太好了,我很茫然,我已经尝试使用邮递员进行 api 调用,一切正常,但是当我尝试使用 firebase 函数时,它不起作用。
谢谢!
【问题讨论】:
请显示每个变量的确切值,或至少显示grant_type
的值(因为这是错误消息所说的错误)。
让 grant_type: string = 'authorization_code'
【参考方案1】:
问题解决了!!!!!!
我不得不使用 qs.stringify 作为 body 参数,我在尝试自己解决这个问题时在一些帖子上看到了这个,但它给了我 stringify 不是一个函数的错误.. 来解决这个问题我从 import 语句更改为 require 语句
下面是代码!
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)
)
【讨论】:
以上是关于如何在 firebase 函数中使用 Axios 正确发送 Post 请求?的主要内容,如果未能解决你的问题,请参考以下文章
使用 React 和 Axios 更新 Firebase 中的数据
带有 axios 的 firebase 身份验证 rest API 请求
如何保存我最近用 axios 创建的 firebase 中的数据并做出反应?
axios.delete 正在从 firebase 数据库中删除所有节点