![](/img/trans.png)
[英]Hosting Google Cloud Run using Firebase Hosting raises Mixed Content error
[英]CORS error when using Firebase Hosting and Cloud Run
我有一個具有以下設置的 SPA:
一切都在本地運行,但是當我部署應用程序並嘗試發出請求時,由於預檢缺少允許源標頭,我收到 CORS 錯誤:
從源“https://project-id.web.app”訪問“https://cloud-run-api-hash.a.run.app/graphql/”已被 CORS 政策阻止:響應預檢請求未通過訪問控制檢查:請求的資源上不存在“Access-Control-Allow-Origin”標頭。 如果不透明響應滿足您的需求,請將請求的模式設置為“no-cors”以在禁用 CORS 的情況下獲取資源。
使用django-cors-headers
,我已經將 Firebase 域添加到我的 Django 設置中的CORS_ORIGIN_WHITELIST
。
我的firebase.json
看起來像這樣:
{
"hosting": {
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "/authenticated/**",
"run": {
"serviceId": "cloud-run-serviceID",
"region": "us-central1"
}
},
{
"source": "**",
"destination": "/index.html"
}
],
"headers": [ {
"source": "**/*.@(eot|otf|ttf|ttc|woff|font.css)",
"headers": [ {
"key": "Access-Control-Allow-Origin",
"value": "*"
} ]
} ]
}
}
我的目的是在用戶通過身份驗證並路由到https://project-id.web.app/authenticated
后觸發 cloud run 容器,但在登錄應用程序后我沒有看到任何 Cloud Run 日志。 此外,當我嘗試發送任何 HTTP 請求時,我會收到上面顯示的 CORS 錯誤。 不確定這里出了什么問題,因為我嚴格遵循 Cloud Run/Firebase 托管文檔。 任何意見是極大的贊賞。
事實證明,問題出在django-cors-headers
。 我將允許的域放在CORS_ALLOWED_ORIGINS
而不是CORS_ORIGIN_WHITELIST
並且它起作用了。 根據文檔,此設置已重命名。 我仍然不確定為什么CORS_ORIGIN_WHITELIST
在 Cloud Run 上不起作用……它應該作為別名使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.