Javascript 大型firebase函数请求似乎会导致连接错误

Javascript 大型firebase函数请求似乎会导致连接错误,javascript,firebase,google-cloud-functions,Javascript,Firebase,Google Cloud Functions,我有一个firebase函数,当我在本地机器上运行它时,它工作得非常好。它发送一封电子邮件。代码如下: exports.sendEmail = functions.https.onRequest((req, res) => { const msg = req.query return sgMail.send(msg) .then(mailResponse => { return cors(req, res, () => { res.s

我有一个firebase函数,当我在本地机器上运行它时,它工作得非常好。它发送一封电子邮件。代码如下:

exports.sendEmail = functions.https.onRequest((req, res) => {
  const msg = req.query
  return sgMail.send(msg)
    .then(mailResponse => {
      return cors(req, res, () => {
        res.status(200).send(mailResponse)
      })
    })
    .catch(err => {
      return cors(req, res, () => {
        console.log(err)
        res.status(200).send(err)
      })
    })
})
但是,在部署时,无论是从本地计算机还是从firebase托管部署请求,我都会遇到以下错误:

在以下位置访问XMLHttpRequest。。。从起源。。。已被CORS策略阻止:请求的资源上不存在“Access Control Allow Origin”标头。

但是,如果请求足够小,那么它将通过,正确地启动函数,并且不会产生错误。只有当我试图通过一封包含大量报告数据的相对较大的电子邮件时,我才会遇到这个问题

我试图从GET转换到POST请求,但这似乎没有效果

firebase函数日志显示,函数执行耗时696毫秒,错误发生时状态为“连接错误”

根据Google for HTTP函数,如果未正确设置跨源资源共享(CORS),您可能会遇到类似的错误

CORS由两个请求组成:飞行前OPTIONS请求和OPTIONS请求之后的main请求

飞行前请求包含指示方法的标头和附加标头,这些标头将在主请求中发送,以及主请求的来源

要处理飞行前请求,您必须设置适当的访问控制允许-*头,以匹配您想要接受的请求。请参见此示例。

根据Google for HTTP函数,如果未正确设置跨源资源共享(CORS),则可能会出现类似的错误

CORS由两个请求组成:飞行前OPTIONS请求和OPTIONS请求之后的main请求

飞行前请求包含指示方法的标头和附加标头,这些标头将在主请求中发送,以及主请求的来源

要处理飞行前请求,您必须设置适当的访问控制允许-*头,以匹配您想要接受的请求。请看这个例子