Flutter Web / Dart CORS Ошибка с хостингом Firebase - PullRequest
2 голосов
/ 20 февраля 2020

Проблема

Я написал приложение во 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, но ошибка также возникает на локальном хосте без Firebase
  • Я думаю, что проблема в обоих случаях, но в режиме выпуска просто меньше журналов

Что я пытался

В соответствии с этой документацией или этим Вопросом Я должен что-то добавить, используя Expressjs, например:

const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors({ origin: true }));
  • Есть ли что-то вроде Expressjs в Dart / Flutter? Я видел это , но я не мог заставить его работать.
  • Или есть другой способ установить заголовки?

1 Ответ

0 голосов
/ 20 февраля 2020

Кажется, что действительно, CORS блокирует использование Firebase для хранения и доступа к данным. Согласно документации Конфигурирование совместного использования ресурсов между источниками (CORS) :

Совместное использование ресурсов общего происхождения (CORS) - это механизм, позволяющий взаимодействовать между ресурсами из разных источников. обычно запрещается для предотвращения злонамеренного поведения.

Учитывая это, вам нужно будет настроить свою работу и принимать запросы, сделанные через HTTP. Я бы порекомендовал вам взглянуть на приведенную выше документацию и следующие ссылки, чтобы вы могли получить больше информации об этом.

После их настройки вы больше не должны сталкиваться с обеими ошибками, поскольку запросы через HTTP будут авторизованы через CORS и доступ к Firebase должен быть установлен.

Дайте мне знать, помогла ли вам эта информация!

...