我已遵循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...
但是我仍然收到以下错误消息:
对于使用Cloud Functions处理CORS的适当方法的任何建议,将不胜感激。
答案 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服务,因此无法具体说明。如果您有权公开服务,则可以提供更具体的答复。