Firebase 托管的 Flutter Web/Dart CORS 错误

Ste*_*in. 5 cors dart firebase firebase-hosting flutter-web

问题

我在 Flutter Web 中编写了一个应用程序。当我在浏览器中运行它(调试)时,出现以下错误:

cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.googleapis.com/identityto...
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

其他信息

  • 该应用程序托管在 Firebase 托管中,但在没有 Firebase 的本地主机上也会发生该错误
  • 我认为这两种情况下的问题都是cors,但发布模式的日志较少

我尝试过的

根据文档或问题,我必须使用 Expressjs 添加一些内容,例如:

const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors({ origin: true }));
Run Code Online (Sandbox Code Playgroud)
  • Dart/Flutter 中有类似 Expressjs 的东西吗?我看到了这个,但我无法让它工作。
  • 或者还有其他设置标题的方法吗?

gso*_*iel 3

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

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

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

配置完它们后,您不应再遇到这两个错误,因为通过 HTTP 的请求将通过 CORS 进行授权,并且应建立对 Firebase 的访问。

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


归档时间:

查看次数:

7092 次

最近记录:

5 年,6 月 前