【问题标题】:How do I pass parameters to cors within a firebase function如何在firebase函数中将参数传递给cors
【发布时间】: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 请求的参数。 GET requests 不应该有正文(仅查询参数),虽然我不确定这是问题的原因,但它可能没有帮助。我建议使用POST 或使用req.query 查询参数。
  • 是的,这对我来说是一个糟糕的错误。非常感谢!

标签: node.js firebase cors axios google-cloud-functions


【解决方案1】:

您应该使用axios.post():通过执行axios.get()body 不会传递给云函数。

axios.post('someURL', {
            A:variableA,
            B:variableB,
            C:variableC
        })
        .then(res => {
            const output = res.data;
            console.log("message output = " + output)
        })

【讨论】:

  • 是的,这是我的一个糟糕的错误。谢谢你帮我解决这个问题
猜你喜欢
  • 2019-01-24
  • 2020-10-01
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 2013-01-27
相关资源
最近更新 更多