Javascript js应用程序中的cors策略阻止FirebaseAuth请求
我知道存在类似的问题,但我没有找到解决办法。 我有一个内置的flatterweb应用程序,可以编译成javascript。我把它放在Firebase主机上。应用程序内的第一个屏幕是使用FirebaseAuth进行日志记录的登录页面。每当网站第一次打开时-所有内部库请求的状态均为失败。之后我按CTRL+F5键,一切都很顺利。 下面是同一个第一个内部请求的比较。左侧为成功,右侧为失败,原因是“**已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:响应中“访问控制允许凭据”标头的值为“”,当请求的凭据模式为“包括”时,该值必须为“真” 我发现了Firebase主机头的配置,所以我这样做了:Javascript js应用程序中的cors策略阻止FirebaseAuth请求,javascript,firebase,flutter,cors,firebase-hosting,Javascript,Firebase,Flutter,Cors,Firebase Hosting,我知道存在类似的问题,但我没有找到解决办法。 我有一个内置的flatterweb应用程序,可以编译成javascript。我把它放在Firebase主机上。应用程序内的第一个屏幕是使用FirebaseAuth进行日志记录的登录页面。每当网站第一次打开时-所有内部库请求的状态均为失败。之后我按CTRL+F5键,一切都很顺利。 下面是同一个第一个内部请求的比较。左侧为成功,右侧为失败,原因是“**已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:响应中“访问控制允许凭据”标头的值为“”,当
{
"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进行简单初始化。然后在index.html中关于firebase的部分使用Email和Password(…)登录FirebaseAuth.instance.Signin:
<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键后的请求:
红色模糊的是我的应用程序的URL您是否尝试清除缓存。。?你说在cntrl+F5上它工作。所以有时候清除缓存是有帮助的。但是何时以及如何清除缓存呢?密码?当前总是在打开站点后始终CTRL+F5是必需的。但我在寻找原因——清除缓存后,CORS到Google API突然起作用的具体变化以及我如何通过代码实现这一点——也许某个令牌正在刷新(哪一个以及如何强制刷新),我要求在浏览器中清除缓存。我还想知道当你按下cntl+f5时cors请求是如何传递的,所以我只是猜测,它是否与浏览器缓存有关。@aravind很遗憾,你的想法与CTRL+f5完全相同。它只工作一次,我用所有网络请求的列表更新了问题