angular - 在 Firebase 托管中启用 CORS
问题描述
我的 CORS 和我的 Google Cloud 功能遇到了这个非常烦人的问题......
我得到的错误是:
从源“ http://localhost:4200 ”访问 [ My function URL ] 处的 XMLHttpRequest已被 CORS 策略阻止:预检中 Access-Control-Allow-Headers 不允许请求标头字段 access-control-allow-origin回复。
我已经尝试使用以下代码在功能方面处理它:
if request.method == 'OPTIONS':
headers = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Max-Age': '3600'
}
return ('', 204, headers)
然后在主返回中添加:
headers = {
'Access-Control-Allow-Origin': '*'
}
....
return(json.dumps(data), 200, headers)
这不起作用....
我还尝试了 firebase.json 标头方法,但也无法正常工作......
甚至尝试使用 HttpHeaders 像这样:
const headers = new HttpHeaders()
.set("Access-Control-Allow-Origin", "*")
.set("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
.set('cache-control', 'no-cache')
也不工作.....
然后我尝试使用代理(只是为了检查这是否是实际问题)添加了proxy.config.json,当然在开发中它只是工作......
但问题是,我需要能够将 Angular 应用程序上传到 Firebase 托管,那么如何修复后端的 CORS 错误?
解决方案
那么它现在解决了,问题:
我在云函数(服务器端)和 webApp 端都有 CORS 标头,这在某种程度上是不允许的,所以我只是从 webapp 端删除了代码,并将代码只留在云函数(服务器端)中,这解决了问题...
谢谢大家!
推荐阅读
- grafana - 无法在 grafana 中设置 HomePath 和配置
- c# - Rx Buffer 运行一次并完成
- c# - 在分配其余属性后无法将一个属性添加到列表中的对象
- python - nargs 取决于另一个设置?
- python - 验证单元格是否相同并构建一个 excelfile
- arrays - 如何返回包含哈希的数组数组
- .net - 处理从 [MSAL] [.Net] 返回的 AADSTS70008/AADSTS50173 错误代码
- google-apps-script - Apps 脚本 sheet.getCharts() 引发服务错误:电子表格
- sparql - SPARQL - 如果属性存在,如何过滤,否则按原样添加?
- nservicebus - 如何将依赖项注入 NServiceBus 管道行为?