首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨地域下载js格式的图片

跨地域下载js格式的图片
EN

Stack Overflow用户
提问于 2020-01-22 00:48:09
回答 1查看 99关注 0票数 0

我使用的是Chrome 79。

我正在尝试开始下载html页面中的图像。镜像与网页位于同一服务器上,但通过nginx服务器通过不同的端口提供服务。这显然把我带到了跨域安全问题上。

首先,我尝试使用标准

代码语言:javascript
复制
var a = document.createElement('a');
a.download = "file.bmp";
a.href = "http://xxxxxxx/xxx/somefile.bmp";
document.body.appendChild(a);
a.click();
a.remove();

有趣的是,这会使我的图像显示在新的选项卡中,而不是下载。我想这是由于cors的原因吧?

在阅读了关于此主题的讨论后:Chrome 65 blocks cross-origin . Client-side workaround to force download?

我尝试使用fetch函数来使用这里给出的方法。不幸的是,这并没有解决我的问题。我得到一个“不透明”类型的响应,而我的blob是未定义的...

代码语言:javascript
复制
var url = "http://xxxxxxxxx/xxx/somefile.bmp";
fetch(url, {
  mode: 'no-cors'})
  .then(function(response){handleBlob(response);})      
  .catch(e => console.error(e));

-------

function handleBlob(response)
{
   var blob = response.blob;
   var blobUrl = URL.createObjectURL(blob);
   var ImageTest = document.getElementById("DummyLink");      
   ImageTest.download = "file.bmp";
   ImageTest.href = blobUrl;
   ImageTest.click();           
}

我认为这一切都很奇怪-资源的服务器名称与网页的服务器名称相同,所以我假设这里没有真正的安全危险……

任何关于如何触发将映像下载到磁盘的建议或变通方法都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-01-22 01:52:39

不是100%确定你想要做什么。

代码语言:javascript
复制
var url = 'http://webpage.com/images/images.jpg',
var img = document.createElement('img');
img.src = src;
document.getElementById("DummyLink").appendChild(img);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59845711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档