【问题标题】:Getting CORS/Content-type issues with Google Cloud Run and Firebase使用 Google Cloud Run 和 Firebase 获取 CORS/内容类型问题
【发布时间】:2021-10-31 12:42:46
【问题描述】:

我有一个在 Google Cloud Run 上运行的 gRPC 服务器和一个托管在 Firebase 上的 React Web 应用程序。 Web 应用程序使用 Web gRPC 发出请求。我按照指南进行操作:https://firebase.google.com/docs/hosting/cloud-run 但我无法使该功能正常工作 - 我要么收到此错误:

Access to XMLHttpRequest at 'https://app-id.firebaseapp.com/{service}/{method}' from origin 'https://{app-id}.web.app' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

当我使用https://{app-id}.firebase.com 的服务器作为我的服务主机时,或者

react_devtools_backend.js:2850 FAILED GRPC REQUEST
message: Unknown Content-type received.

使用其他主机名 (https://{app-id}.web.app)。

这应该根据指南工作,我不知道为什么它不是。我尝试弄乱标题(使用 Access-Control-Allow-Origin 的各种东西),但没有得到 anwyhere。

【问题讨论】:

    标签: firebase cors grpc firebase-hosting google-cloud-run


    【解决方案1】:

    关于它有一个完整的book ...而您需要在Access-Control-Allow-Origin: https://{app-id}.web.app 标头中将原始https://{app-id}.web.app 发送回,以便允许嵌入。类似的东西...取决于您想要嵌入的位置和内容:

    {
      "hosting": {
        ...
        "headers": [{
          "source" : "https://{app-id}.web.app",
          "headers" : [{
            "key" : "Access-Control-Allow-Origin",
            "value" : "https://{app-id}.web.app"
          }]
        }]
      }
    }
    

    【讨论】:

    • 感谢您的帮助!奇怪的是,我仍然收到关于内容类型的最后一条消息:(
    • 如果这是相关的,但我在运行仪表板上的点击计数一直保持为零,这意味着它甚至无法点击实际服务。
    【解决方案2】:

    在挖掘了一堆之后:这是一个浏览器的东西,浏览器和 gRPC 服务器之间需要一个代理才能工作:(。

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 1970-01-01
      • 2021-09-06
      • 2021-12-05
      • 2020-10-26
      • 2020-10-01
      • 2016-01-19
      • 2018-07-06
      • 2020-07-25
      相关资源
      最近更新 更多