【问题标题】:Enable Cors for Firebase Cloud Functions为 Firebase 云功能启用 Cors
【发布时间】:2018-08-27 07:00:12
【问题描述】:

我正在尝试为我的 http 云函数启用 cors。但是,即使关注this example that uses cors,尝试fetch 时,它仍然给我错误:

对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

这是我的云功能:

const functions = require('firebase-functions');
const cors = require('cors')({origin: true});

exports.foo = functions.https.onRequest((req, res) => {
    return cors(req, res, () => {
        let format = req.query.format;
        if (!format) {
            format = req.body.format;
        }

        //do stuff

    });
});

这是我获取的方式:

fetch("https://us-central1-my-database.cloudfunctions.net/foo", {
    method: "POST", 
    body: JSON.stringify(data),
    headers: {
      "Content-Type": "application/json"
    }
}).then((res) => {
    // ...
}).catch((err) => {
    // ...
});

为什么 cors 不起作用,我该如何解决?

【问题讨论】:

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


【解决方案1】:

尝试使用带有 default parameters 的 cors

{
    "origin": "*",
    "methods": "GET,HEAD,PUT,PATCH,POST,DELETE",
    "preflightContinue": false,
    "optionsSuccessStatus": 204
}

在您的情况下,您只需要更改一行:

// code...

// const cors = require('cors')({origin: true});
const cors = require('cors')();

// code...

【讨论】:

    猜你喜欢
    • 2021-04-08
    • 2021-03-05
    • 2018-05-15
    • 2019-12-11
    • 2021-06-07
    • 2020-12-23
    • 2020-01-22
    • 2021-03-21
    • 2020-06-09
    相关资源
    最近更新 更多