代码之家  ›  专栏  ›  技术社区  ›  Tavish Aggarwal

使用Fetch API下载图像

  •  16
  • Tavish Aggarwal  · 技术社区  · 8 年前

    我知道这个问题已经得到了回答,但我在使用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);           
      });
    }
    

    在这里,当我做的时候 console.log 我得到了回应 Blob {size: 0, type: ""} .
    请告诉我我做错了什么?

    1 回复  |  直到 8 年前
        1
  •  10
  •   ekanna    8 年前

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

    具有讽刺意味的是,您必须将模式设置为“无cors” 不能 可以使用JavaScript访问,但响应仍然可以由服务工作者提供或缓存。

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