即使规则设置为 true,也可以用 firebase 反应 CORS 问题

Posted

技术标签:

【中文标题】即使规则设置为 true,也可以用 firebase 反应 CORS 问题【英文标题】:React CORS issue with firebase even though rule is set to true 【发布时间】:2020-01-09 15:41:19 【问题描述】:

我 99% 确信我为我的 firebase 实时数据库正确设置了规则。 React-Redux 被调用 firebase 的两个 react 应用程序使用 不过这个问题很让人费解, 1)我创建了一个新的 react 应用程序并尝试对 firebase 执行 axios POST/GET 但 CORS 错误不断发生

2) 我使用了旧的 react 应用程序并调用了与 (1) 没有 CORS 错误相同的 API,并且 POST 请求通过了。

3) 我测试 API 使用邮递员工作,POST 和 GET 请求都通过了

4) 我还验证了 localhost 在 domain 下为 firebase 的权限设置是允许的

有人知道怎么回事吗?

错误:

在“https://...firebaseio./Employee.json”访问 XMLHttpRequest 来自原点“http://localhost:3000”已被 CORS 策略阻止: 对预检请求的响应未通过访问控制检查: 响应中“Access-Control-Allow-Credentials”标头的值 当请求的凭证模式为 '' 时必须为 'true' '包括'。发起请求的凭证模式 XMLHttpRequest 由 withCredentials 属性控制。

employee.js:42 Error: Network Error
    at createError (createError.js:17)
    at XMLHttpRequest.handleError (xhr.js:80)

【问题讨论】:

您是否尝试通过将withCredentials 属性设置为false 来执行没有凭据的XMLHttpRequest? 错误消息显示“响应中的'Access-Control-Allow-Credentials'标头的值为''”。这就是您需要解决的具体问题。 @jered 解决方案为我解决了这个问题。但是,以前当我使用 firebase 在 react 中设置 redux 时,我没有添加 WithCredentials 并且 HTTP 请求仍然通过。嗯..思想的食物...感谢jered的解决方案! 【参考方案1】:

@Jered 通过添加 WithCredential 解决了这个问题

【讨论】:

以上是关于即使规则设置为 true,也可以用 firebase 反应 CORS 问题的主要内容,如果未能解决你的问题,请参考以下文章

为啥即使 objectEquality 设置为 true,$watch 也不会触发?

即使存在未设置为true,Rails验证也需要数值

即使在使用 Vert.x 和 Log4j2 将“isThreadContextMapInheritable”设置为 true 后也没有获取 ThreadContext 值

即使 paranoid 设置为 true,Sequelize.js 仍会删除表行

即使firestore安全规则中的文档字段不可用,也如何允许访问?

即使设置了 sameSite:'none' 和 secure: true 对于 MERN 堆栈 Web 应用程序,Cookie 也不会保存在 chrome 中