js应用中的cors策略阻止了FirebaseAuth请求

时间:2020-01-23 12:50:02

标签: javascript firebase flutter cors firebase-hosting

我知道存在类似的问题,但是我没有找到解决方案。 我有一个内置的Flutter Web应用程序,该应用程序已编译为javascript。我把它托管在Firebase Hosting上。应用内的第一个屏幕是使用FirebaseAuth进行登录的登录页面。每当首次打开网站时,所有内部库请求的状态都会失败。在此之后,按CTRL + F5可以使所有操作顺利进行。 这是相同的第一个内部请求的比较。左边是成功的一个,右边是由于“ **已被CORS策略阻止而失败的一个:对预检请求的响应未通过访问控制检查:”中的“ Access-Control-Allow-Credentials”标头的值响应为“当请求的凭据模式为“包括”时,必须为“真”。” left is a successful one, on right one which fails

我发现了Firebase Hosting标头的配置,因此我做到了:

{
  "hosting": {
    "public": "",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ],
    "headers": [ {

    "source": "**",
    "headers": [ 
    {
      "key": "Access-Control-Allow-Origin",
      "value": "*"
    }, 
    {
      "key": "Access-Control-Allow-Methods",
      "value": "DELETE, POST, GET, OPTIONS"
    },
    {
      "key": "Access-Control-Allow-Headers",
      "value": "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"
      } 
    ]
  }]
  }
}

在应用程序中,可以使用didChangeDependencies中的必需数据对firebase进行简单的初始化。然后在有关Firebase的index.html部分上找到FirebaseAuth.instance.signInWithEmailAndPassword(...):

<script src="https://www.gstatic.com/firebasejs/7.7.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.7.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.7.0/firebase-firestore.js"></script>
<script src="main.dart.js" type="application/javascript"></script>

我已经在Chrome中对其进行了多次测试,但始终失败。只有在本地主机上才能顺利运行

更多信息: “正常”请求(不清除缓存)返回页面: enter image description here CTRL + F5之后在同一站点上的请求: enter image description here 那些模糊的红色是我的应用的网址

0 个答案:

没有答案