Google Cloud Functions的CORS问题

时间:2019-12-07 19:26:13

标签: javascript cors google-cloud-functions

我已遵循other threads的有关此问题的建议,但是由于某些原因,提供的解决方案似乎对我不起作用。

我尝试将CORS响应标头用于飞行前请求,如下所示:

exports.functionName = (req, res) => {
  res.set('Access-Control-Allow-Origin', '*');
  if (req.method === 'OPTIONS') {
    res.set('Access-Control-Allow-Methods', 'POST');
    res.set('Access-Control-Allow-Headers', 'Content-Type, User-Agent');
    res.set('Access-Control-Max-Age', '3600');
    res.status(200).send(''); //I have used status code 204 as well to no avail
  } else {
      try {
        //rest of function stuff...

以及如下使用CORS软件包:

const cors = require('cors')({origin: true});
//...
exports.metaUpload = (req, res) => {
  cors(req, res, () => {
  //rest of function stuff...

但是我仍然收到以下错误消息:

enter image description here

对于使用Cloud Functions处理CORS的适当方法的任何建议,将不胜感激。

2 个答案:

答案 0 :(得分:1)

const cors = require('cors')({origin:`yourdomain.com`});
 exports.metaUpload = (req, res) => {
      cors(req, res, () => {
       // logic goes here
     }
   }

此外,别忘了更新package.json并在部署过程中执行npm install --production

答案 1 :(得分:0)

您需要将来源域中的请求者列入白名单。请看下面的示例,其中foo.example是请求者。

Access-Control-Allow-Origin: https://foo.example

您没有提及要解决此问题的Google服务,因此无法具体说明。如果您有权公开服务,则可以提供更具体的答复。