使用Fetch API下载图片

Tav*_*wal 5 javascript fetch-api

我知道这个问题已经解决,但是使用Fetch API下载图片时遇到问题。
我用来获取图像的代码。

function downloadImage() {
  fetch('https://upload.wikimedia.org/wikipedia/commons/9/98/Pet_dog_fetching_sticks_in_Wales-3April2010.jpg',
    {mode: 'no-cors'})
  .then(response => response.blob())
  .then(blob => {
        console.log(blob);           
  });
}
Run Code Online (Sandbox Code Playgroud)

在这里,console.log我得到回应Blob {size: 0, type: ""}
请让我知道我在这里做错了吗?

eka*_*nna 6

默认情况下,fetch 使用 CORS 模式。但是当服务器响应不包含“Access-Control-Allow-Origin”标头时。它跳过响应体。

具有讽刺意味的是,您必须将模式设置为“no-cors”才能请求不透明的资源。无法使用 JavaScript 访问不透明的响应,但仍然可以由 Service Worker 提供或缓存响应。

https://developers.google.com/web/ilt/pwa/working-with-the-fetch-api

  • 您能解释一下如何使用“服务人员”吗?我使用原始 JS 和 fetch API,在浏览器控制台中我看到带有图像的服务器响应,但 JS Promise 没有 Body (null) 和 status = 0 (?!) (2认同)