我知道存在类似的问题,但是我没有找到解决方案。 我有一个内置的Flutter Web应用程序,该应用程序已编译为javascript。我把它托管在Firebase Hosting上。应用内的第一个屏幕是使用FirebaseAuth进行登录的登录页面。每当首次打开网站时,所有内部库请求的状态都会失败。在此之后,按CTRL + F5可以使所有操作顺利进行。 这是相同的第一个内部请求的比较。左边是成功的一个,右边是由于“ **已被CORS策略阻止而失败的一个:对预检请求的响应未通过访问控制检查:”中的“ Access-Control-Allow-Credentials”标头的值响应为“当请求的凭据模式为“包括”时,必须为“真”。”
我发现了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中对其进行了多次测试,但始终失败。只有在本地主机上才能顺利运行
更多信息: “正常”请求(不清除缓存)返回页面: CTRL + F5之后在同一站点上的请求: 那些模糊的红色是我的应用的网址