【发布时间】:2020-03-14 08:18:41
【问题描述】:
我正在尝试将基本字符串参数发送到 firebase 函数中的 cors。但是,我无法找到一种方法来传递参数,而不会出现 cors 并阻止我的请求。
const functions = require('firebase-functions');
const cors = require('cors')({origin:true})
exports.sendMail = functions.https.onRequest((request, response) => {
cors(request, response,() =>{
var variableA = request.body.A
var variableB = request.body.B
var variableC = reques.body.C
response.send("Function run completed")
})
正在使用 axios.get() 调用 Firebase 函数
axios.get('someURL', {
A:variableA,
B:variableB,
C:variableC
})
.then(res => {
const output = res.data;
console.log("message output = " + output)
})
请求和 firebase 功能按预期正常工作。但我不知道如何正确传递参数。有人知道怎么做吗?
重要的编辑! - 我应该补充一点,上面代码中显示的方法导致参数未定义。如果我尝试以任何方式从 axios 调用中引用请求和响应对象(第一对请求和响应对象),那就是 cors 错误突然爆发的时候。
【问题讨论】:
-
“我应该补充一点,上面代码中显示的方法导致参数未定义”->哪个方法?如果您执行
...cors(request, response,() =>{ var variableA = request.body.A ... console.log(variableA);...,您会在 CF 控制台中看到什么? -
我相信这就是上面代码中显示的内容,导致变量未定义。如果我错了,请纠正我。
-
我认为您的部分问题是您正在
req.body中查找GET请求的参数。GETrequests 不应该有正文(仅查询参数),虽然我不确定这是问题的原因,但它可能没有帮助。我建议使用POST或使用req.query查询参数。 -
是的,这对我来说是一个糟糕的错误。非常感谢!
标签: node.js firebase cors axios google-cloud-functions