Flutter Web/Dat CORS错误与Firebase主机



问题

我在Flutter Web上写了一个应用程序。当我在浏览器中运行它(调试(时,我会得到以下错误:

cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.googleapis.com/identityto...

当我在发布模式下运行它时,我只得到这个:

Error while fetching an original source: NetworkError when attempting to fetch resource.
Source URL: org-dartlang-sdk:///sdk/lib/_internal/js_runtime/lib/js_helper.dart

其他信息

  • 应用程序托管在Firebase Hosting中,但错误也发生在没有Firebase的localhost上
  • 我认为这两种情况下的问题都很严重,但发布模式的日志较少

我尝试了什么

根据这个文档或这个问题,我必须使用Expressjs添加一些东西,比如:

const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors({ origin: true }));
  • Dart/Flutter中有类似Expressjs的东西吗?我看到了,但我没能让它发挥作用
  • 或者还有其他设置标题的方法吗

CORS似乎确实阻止了您使用Firebase存储和访问数据。根据文档配置跨来源资源共享(CORS(:

跨来源资源共享(CORS(是一种允许来自不同来源的资源之间进行交互的机制,这通常是为了防止恶意行为而禁止的。

考虑到这一点,您需要将自己的配置为工作并接受通过HTTP发出的请求。我建议你看一下上面的文档和下面的链接,这样你就可以获得更多关于它的信息

  • 在Firebase的云功能中启用CORS
  • 通过HTTP请求调用函数

一旦配置了它们,就不应该再面临这两个错误,因为通过HTTP的请求将通过CORS进行授权,并且应该建立对Firebase的访问。

如果这些信息对你有帮助,请告诉我!

所以我和你在同一点上,并不是真的想创建云函数来解决这个问题。我发现有可能在firebase上编辑CORS配置。它非常复杂:

您需要安装gsutil,对其进行授权,然后编辑CORS配置。

你可以在官方的防火基地页面上找到更多

相关内容

  • 没有找到相关文章

最新更新