【问题标题】:How to fix error when fetching file from firebase storage?从firebase存储中获取文件时如何修复错误?
【发布时间】:2023-03-26 20:29:01
【问题描述】:

我正在尝试创建一个页面,让您可以上传文件并在其中搜索某些值,但是当我尝试从 firebase 存储中获取文件时,它给了我一个错误

CORS 策略阻止了从源“mysite”在“theurl”处获取的访问权限:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

是的,我尝试将 mod 设置为 no-cors,这有点用,但 fetch 返回一个空白 txt 文件。这是我的代码,请帮忙。谢谢

storageRef.child('thefilepath').getDownloadURL().then(function (url) {
    document.getElementById("atextbox").value = url
})

var dictionaryurl = document.getElementById("atextbox").value

fetch(dictionaryurl)
    .then(r => r.text())
    .then(t => {mycodethatrunsafter});

【问题讨论】:

    标签: javascript firebase fetch firebase-storage


    【解决方案1】:

    这是服务器问题。您需要您的服务器(在 Firebase?)以允许从您尝试上传/下载文件的域进行访问。如果 Firebase 服务器不是您自己的,您将需要一个反 CORS 代理,无论是您拥有的还是可公开访问的代理之一。反 CORS 代理接受其中包含 URL 的请求(例如,在 HTTP GET 或 POST 变量中)并向所需服务器发出请求。最后,使用正确的 HTTP 标头(没有 CORS 或使用允许域的 CORS 规则)将响应发送到原始客户端。

    编辑

    要配置您的 Firebase 存储,请关注 this

    第 3 步:配置跨域资源共享 (CORS) 我们可以使用 用于在存储桶上配置 CORS 的 gsutil cors 命令:

    gsutil cors set cors.json gs://mlc-agira-271a8.appspot.com
    

    cors.json 将包含:

      [
       {
         "origin": ["yourapp.url.com"], // Or * if you want to allow every one
         "method": ["GET"], // And/or POST, PUT or whatever you use
         "maxAgeSeconds": 3600
       }
     ]
    

    【讨论】:

    • 推荐?
    • 服务器在你的控制之下吗?
    • 它是firebase存储控制台,有点
    • 这是我的:rules_version = '2'; service firebase.storage { match /{allPaths=**} { 允许读,写 } }
    • 编辑了有关 Firebase 的信息
    猜你喜欢
    • 2016-11-13
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 2023-03-03
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多