Node.js 当我添加一个引用变量的控制台日志时,为什么我的Google Cloud函数会引发CORS策略问题?
我有一个基本的node.js云函数。它接受请求并只返回消息体;它工作不正常,我正在尝试使用控制台日志进行调试Node.js 当我添加一个引用变量的控制台日志时,为什么我的Google Cloud函数会引发CORS策略问题?,node.js,google-cloud-functions,Node.js,Google Cloud Functions,我有一个基本的node.js云函数。它接受请求并只返回消息体;它工作不正常,我正在尝试使用控制台日志进行调试 /** * Responds to any HTTP request. * * @param {!express:Request} req HTTP request context. * @param {!express:Response} res HTTP response context. */ exports.helloWorld = (req, res) => {
/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
exports.helloWorld = (req, res) => {
res.set('Access-Control-Allow-Origin', '*');
console.log("req: ");
if (req.method === 'OPTIONS') {
// Send response to OPTIONS requests
res.set('Access-Control-Allow-Methods', 'GET');
res.set('Access-Control-Allow-Headers', 'Content-Type');
res.set('Access-Control-Max-Age', '3600');
res.status(204).send('');
} else {
let message = req.query.message || req.body.message || 'Hello World!';
let rets ={};
rets['message'] = message;
res.status(200).send(JSON.stringify(rets));
}
};
以上方法很好。但是如果我将控制台日志行更改为:
console.log("req: " + JSON.stringify(req) );
我得到以下错误:
CORS策略已阻止从源“”获取“”的访问:请求的资源上不存在“访问控制允许源”标头。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源
我只是不明白为什么console语句会影响CORS的东西。我在上面的代码中添加了检查,以尝试修复这些CORS问题
编辑1:
我注意到,如果我改为控制台记录请求主体,我不会得到CORS错误?下面的工作很好
console.log(JSON.stringify(req.body) );
尝试在客户端打开CORS模式。尝试在客户端打开CORS模式。找到答案了吗?找到答案了吗?