首页 > 解决方案 > 如何通过 URL 读取可以通过 URL 下载的文件

问题描述

当我尝试通过 url 获取文件时:

fetch("https://storage.googleapis.com/shopify-tiers-assets-prod-us-east1/rhvhv9lacvsynpxxexs6nrtgmzan?GoogleAccessId=assets-us-prod%40shopify-tiers.iam.gserviceaccount.com&Expires=1595464519&Signature=rq%2BfkjqmLrFfH%2B5E9Br2Sdcn2I3zBr7WP4Mp%2BofUJFxjR%2BoWrLgq3KwNkZJyqxcH5f4wKZftnTVnwC5bg7BAYU8yTMzEgLl3s6i0skSoTWvt90%2BmK20Ksyl%2BODm1VlUw8W8mKRSiQTraoOBmBxjV5Fs0cSg2Be3oGfYwF%2F1uedItQgXucmhyarfWS3YNUiUqbYXdplN9nEpHqcrrygyFK0e5lqOchQz0W2aW3lmfJ%2FcGozuMRpTNLiwuyT76m1A2DPqnmWchAKegTj4hcwuyMeZzWKsjFiQxTc3y4aKMlQmqqdfGmfzyQTX6B%2BKQ2sMnItsZHr9pwQg1lyMhXlTcwQ%3D%3D&response-content-disposition=attachment%3B+filename%3D%22bulk-23974576162.jsonl%22%3B+filename%2A%3DUTF-8%27%27bulk-23974576162.jsonl&response-content-type=application%2Fjsonl")

我收到一个 CORS 错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://storage.goo...
(Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

我不控制远程服务器,所以我无法更改 CORS 设置。

我希望能够从客户端的浏览器请求这个文件。这可能吗?如果我将URL粘贴在浏览器中,我可以毫无问题地下载文件。这是否意味着我做错了什么?我如何用简单的javascript下载这个?

我的代码:

fetch(fetchUrl, { method: "GET", headers: {'Access-Control-Allow-Origin': '*'}})
.then(response => response.blob())
.then(blob => {console.log(loc, "response:", blob)})

谢谢!

标签: javascriptfetch

解决方案


推荐阅读