相关疑难解决方法(0)

firebase存储cors奇怪的行为

我正在构建一个应用程序,用户看到一组缩小的图像,然后按“确定”让应用程序下载所有原始文件,将它们放入 zip 文件并发送 zip 文件。

该应用程序使用聚合物、聚合物火、火力(包括存储)。

在上传图像的过程中,我将原始文件和缩小后的文件的下载 url 和存储引用都保存在数据库中。

当我将下载 url 放在 Iron-image 元素中以在浏览器中显示图像时,一切正常,缩小后的图像显示在屏幕上。当我尝试通过 XMLHttpRequest() 下载全尺寸图像时,出现 Cors 错误。我不明白为什么,两个请求都来自同一个应用程序,为什么两个不同的 cors 响应?

这是 XMLHttpRequest() 的代码(主要从 firebase 文档中复制):

for (var z = 0; z < visita.immagini.length; z++) {
  var immagine =visita.immagini[z]

  var storage = firebase.storage();
  var pathReference = storage.ref('immagini/'+ immagine.original.ref);
  pathReference.getDownloadURL().then(function(url) {

    var xhr = new XMLHttpRequest();
    xhr.responseType = 'blob';
    xhr.onload = function(event) {
      var blob = xhr.response;
      console.log(blob);
    };
    xhr.open('GET', url);
    xhr.send();
  }).catch(function(error) {
      console.log(error);
  });

}
Run Code Online (Sandbox Code Playgroud)

这是错误响应:

XMLHttpRequest 无法加载 ***** [图片链接]*****。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问Origin …

javascript xmlhttprequest cors firebase firebase-storage

4
推荐指数
2
解决办法
5274
查看次数