Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在firebase功能中启用CORS_Javascript_Firebase_Cors_Google Cloud Functions_Fetch - Fatal编程技术网

Javascript 在firebase功能中启用CORS

Javascript 在firebase功能中启用CORS,javascript,firebase,cors,google-cloud-functions,fetch,Javascript,Firebase,Cors,Google Cloud Functions,Fetch,我有以下代码: const{v4:uuidv4}=require('uuid') const functions=require('firebase-functions') const nodemailer=require('nodemailer') const cors=require('cors')({origin:true}) const gmailEmail=functions.config().gmail.email const gmailPassword=functions.conf

我有以下代码:

const{v4:uuidv4}=require('uuid')
const functions=require('firebase-functions')
const nodemailer=require('nodemailer')
const cors=require('cors')({origin:true})
const gmailEmail=functions.config().gmail.email
const gmailPassword=functions.config().gmail.password
const mailto=functions.config().gmail.mailto
const mailTransport=nodemailer.createTransport({
服务:“gmail”,
认证:{
用户:Gmail,
密码:gmailPassword
}
})
exports.sendMail=functions.https.onRequest((req,res)=>{
cors(请求、回复等){
const items=req.body.items.forEach(item=>(
`${item.quantity}x${item.uuid}(${item.name})\n`
))
如果(请求方法=='POST'){
常量邮件选项={
发件人:Gmail,
回复:Gmail,
收件人:mailto,
主题:`Order${uuidv4()}来自${req.body.name}(${req.body.email})`,
text:`Order\n\n${items}`
}
mailTransport.sendMail(邮件选项)
res.status(200).send(JSON.stringify({status:'OK'}))
}否则{
res.status(400.send)(JSON.stringify({status:'methodnotallowed'}))
}
})
})
出于某种原因,它曾经奏效,然后一直给我带来痛苦

在获取时访问'https://xxxxx.cloudfunctions.net/sendMail“起源”https://xxxx.com'已被CORS策略阻止:请求的资源上不存在'Access Control Allow Origin'标头。如果不透明响应满足您的需要,请将请求的模式设置为“无cors”,以获取禁用cors的资源。


我错过了什么?如果可能的话,我希望避免使用Express。

要使用Firebase在您的云功能上配置CORS,您需要配置和设置一些附加参数(如官方文档中所述),以便在应用程序中通过HTTP授权和执行CORS

需要在应用程序上配置的设置示例中的参数如下:

const express = require('express'); 
const cors = require('cors')({origin: true}); 
const app = express(); 
app.use(cors({ origin: true }));
我建议您尝试使用上面的设置在后端授予授权

除此之外,下面是来自社区的问题,还有一些与您类似问题的其他解决方案和用例,我认为这些解决方案和用例应该有助于您实现配置,我认为您也应该进行检查


如果这些信息对你有帮助,请告诉我

在单独的语句中尝试这些吗?常量app=express();const cors=需要(“cors”);app.use(cors({origin:true}));