使用从GCS下载的网址提取JavaScript

时间:2019-06-23 21:44:34

标签: javascript firebase cors google-cloud-storage fetch-api

我想在Google Chrome中使用JavaScript fetch从Google Cloud存储中下载文件。我有一个下载URL,如果将URL粘贴到地址栏中(显示文件,显示json文件),该URL会起作用。

但是,如果我在JavaScript控制台中执行此操作,则不会得到我期望的response object

u = (the download URL);
h = {"pragma":"no-cache", 
     "cache-control":"no-cache",
     "mode":"no-cors", 
     "accept":"application/json"}
f = fetch(u, h);
f.then(r => console.log(r))

r是预期的Response object,但r.ok === falser.status === 0r.type === "opaque"

我在做什么错了?


编辑:感谢@sideshowbarker提供指向您所认为的答案的指针。它有所帮助,但这不是答案。

答案似乎在@pteranobyte的注释中,但我还无法使它起作用。文档在这里,但我听不懂:https://cloud.google.com/storage/docs/gsutil/commands/cors


编辑2:我还尝试了使用代理服务器的建议解决方案。然后我得到错误"Missing required request header. Must specify one of: origin,x-requested-with"

此reddit线程表明代理服务器已被GCS阻止:

https://www.reddit.com/r/coinmetrics/comments/b1shxq/cors_error_when_using_your_api/


编辑3: 只需添加建议的“此问题在这里已有答案:”中的链接,因为如果该问题未标记为重复项,我不知道它是否消失。 (请告诉我。)在我的情况下,该链接包含有用的信息。

Trying to use fetch and pass in mode: no-cors


编辑4: 对于那些感兴趣的人,请参阅下面的注释以获取解决方案。 (它不是所建议问题的重复。)

0 个答案:

没有答案