我当前的用例很简单,我只需要向我本地开发的云函数发出post请求。
问题是,当我开火时
firebase serve
托管部署在本地主机:5000
并且云功能部署在本地主机:5001
由于端口不同,这两者来自不同的来源。因此,当浏览器发送初始预检请求时,它会失败并显示错误消息
Failed to load http://localhost:5001/projectname/region/sendEnquiry: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:5000' is therefore not allowed access.
如何设置标头以在本地进行测试?(同样,我不是专业人士,我猜当我决定在生产中部署时,我将具有相同的起源。如果没有,无论如何我仍然需要解决方案)
Thanks.
Google 限制某些调用,但您可以为 Firebase 项目配置 CORS。通过非常混乱的文档很难找到如何做到这一点,我花了一段时间才找到正确的方法。
按着这些次序:
- 转到 console.cloud.google.com
- 在左上角,选择您的 Firebase 项目
- 单击左上角的终端图标(看起来像
>_
)
- 在打开的终端中,单击三点图标并选择“上传文件”
- 上传一个名为 cors.json 的文件,其中包含以下内容:
[
{
"origin": ["*"],
"method": ["GET"],
"maxAgeSeconds": 3600
}
]
- 在终端中,运行以下命令:
gsutil cors set cors.json gs://yourbucketname.appspot.com
(更改网址)
这允许任何GET
来自其他来源的请求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)