Firebase存储和访问控制 – 允许来源

我试图通过XMLHttpRequest从Firebase存储中下载文件,但Access-Control-Allow-Origin没有在资源上设置,所以这是不可能的。 有没有办法在存储服务器上设置这个头文件?

(let [xhr (js/XMLHttpRequest.)] (.open xhr "GET" url) (aset xhr "responseType" "arraybuffer") (aset xhr "onload" #(js/console.log "bin" (.-response xhr))) (.send xhr))) 

Chrome错误消息:

XMLHttpRequest无法加载https://firebasestorage.googleapis.com/ [EDITED]否请求的资源上存在“Access-Control-Allow-Origin”标头。 原因' http:// localhost:3449 '因此不被允许访问。

从firebase-talk小组/列表上的这篇文章 :

为CORSconfiguration数据的最简单方法是使用gsutil命令行工具。 有关gsutil的安装说明,请访问https://cloud.google.com/storage/docs/gsutil_install 。 一旦你已经安装了gsutil并通过validation,你可以使用它来configurationCORS。

例如,如果您只想允许从您的自定义域下载对象,请将该数据放在名为cors.json的文件中(将域replace为"https://example.com" ):

 [ { "origin": ["https://example.com"], "method": ["GET"], "maxAgeSeconds": 3600 } ] 

然后,运行这个命令(用你的桶的名字replace"exampleproject.appspot.com" ):

 gsutil cors set cors.json gs://exampleproject.appspot.com 

你应该设置。

如果您需要更复杂的CORSconfiguration,请参阅https://cloud.google.com/storage/docs/cross-origin#Configuring-CORS-on-a-Bucket上的文档。;