Ошибка блокирования чтения между источниками (CORB) с хранилищем Firebase - PullRequest
1 голос
/ 25 марта 2019

Я использую URL для загрузки, чтобы получить файл HTML из моего хранилища Firebase и отобразить его в шаблоне.В моем шаблоне я использую <img> с src, установленным для URL загрузки.Браузер показывает испорченный файл, а консоль говорит

Cross-Origin Read Blocking (CORB) blocked cross-origin response https://firebasestorage.googleapis.com/v0/b/languagetwo-cd94d.appspot.com/o/English_Videos%2FWalker_Climbs_a_Tree%2Fscript.html?alt=media&token=8772258d-9417-4f93-b16d-29d353c5262

, а затем URL-адрес загрузки.URL загрузки работает, когда я помещаю его в окно браузера.Как указывалось в документации , я сделал этот файл

[
  {
    "origin": "*",
    "method": "GET",
    "maxAgeSeconds": 3600
  }
]

с именем cors.json и запустил

gsutil cors set cors.json gs://languagetwo-cd94d.appspot.com

Я обновил gsutil.Я очистил свой кэш Chrome.Я попробовал мое приложение в Chromium.Я попытался POST вместо GET.Я все еще получаю ошибку CORB.Что еще я должен попробовать?Нужно ли устанавливать Content-Type?

1 Ответ

0 голосов
/ 25 марта 2019

sideshowbarker был прав, проблема была в том, что я использовал <img> для отображения текстового файла HTML. Когда я избавился от тега <img>, ошибка CORB исчезла. Вместо этого я использовал $http.get(downloadURL) для получения файла, затем $sce.trustAsHtml(doc.data); для очистки HTML, затем в шаблоне AngularJS я использовал <div ng-bind-html="myFile"></div> для отображения его в шаблоне. Вот код контроллера AngularJS:

firebase.firestore().collection('Videos').doc($scope.longLanguage).collection($scope.longLanguage + '_Videos').doc($scope.movieTitle).collection('Clips').doc($scope.movieTitle + '_999999').get()
  .then(function(doc) {
    $http.get(doc.data().lyricsDownloadURL)
    .then(function(doc) {
      $scope.lyrics = $sce.trustAsHtml(doc.data);
    })
    .catch(error => console.error(error));
  })
  .catch(error => console.error(error));

и вот шаблон AngularJS:

<div class="col-sm-6 col-md-6 col-lg-6">
  <div ng-bind-html="lyrics"></div>
</div>
...