最近刚遇到这个问题,后台返回的图片链接,点击按钮批量下载,a
标签的 download
属性只对同源文件有效,
所以我们这里先把图片 url 转为 blob 格式,然后再下载
/**
** 将图片 url 转换为 blob 格式
** @param httpUrl: 图片链接,如 https://cdn.aaa.com/bbb.jpg
*/
private async urlToBlob(httpUrl) {
const res: Response = await fetch(httpUrl);
const blob: Blob = await res.blob();
const blobUrl = URL.createObjectURL(blob);
return blobUrl;
}
/**
** 下载图片到本地
** @param blobUrl: blob 格式的图片文件
** @param name: 图片名称
*/
private download(blobUrl, name) {
// 创建虚拟a标签
const eleLink = document.createElement('a');
eleLink.download = name;
eleLink.style.display = 'none';
eleLink.href = blobUrl;
// 触发点击
document.body.appendChild(eleLink);
eleLink.click();
// 然后移除
document.body.removeChild(eleLink);
URL.revokeObjectURL(blobUrl);
}
本文向大家介绍为什么会有跨域问题?怎么解决跨域?相关面试题,主要包含被问及为什么会有跨域问题?怎么解决跨域?时的应答技巧和注意事项,需要的朋友参考一下 为啥会有跨域问题 怎么解决跨域呢? 方案一 JSONP:通过script可以跨域的原理,执行服务端的回调函数 方案二 代理:nigix 或者webpack 代理 配置 方案三 CORS :"跨域资源共享",设置'Access-Control-All
本文向大家介绍如何解决css加载字体跨域的问题?相关面试题,主要包含被问及如何解决css加载字体跨域的问题?时的应答技巧和注意事项,需要的朋友参考一下 https://blog.csdn.net/weixin_33953384/article/details/86252975
背景: 项目访问地址:https://xxx.com a标签下载文件的方式,类似 在本地下载正常,部署到正式环境之后,下载失败 定位原因:是项目访问https的原因,更改成http之后下载正常。 解决方案: 进行代理转发,改成调用接口的方式进行下载 设置代理 "/api/file-storage","http://10.8.15.1:10040/file-storage/" 书写、调用接口 接口u
本文向大家介绍如何用Nginx解决前端跨域问题,包括了如何用Nginx解决前端跨域问题的使用技巧和注意事项,需要的朋友参考一下 前言 在开发静态页面时,类似Vue的应用,我们常会调用一些接口,这些接口极可能是跨域,然后浏览器就会报cross-origin问题不给调。 最简单的解决方法,就是把浏览器设为忽略安全问题,设置--disable-web-security。不过这种方式开发PC页面到还好,如
我正在使用Spring MVC FreeMarker集成。由于我是FreeMarker的新手,我无法从属性文件中找到配置FreeMarker标签的方法。 请帮我解决这个问题。 谢谢。
问题内容: 目的是使产品名称出现在缩略图的工具提示中。浏览器不会根据“ ng-title”或“ ng-attr-title”创建工具提示。 我们正在使用AngularJS 1.0.7版。您可以在任何属性前面加上“ ng-”或“ ng- attr”,Angular会进行相应的绑定。但是,它似乎没有“绑定”到HTML“ A”标签的标题上。 例如 1。 码: 预期结果: 实际结果:工具提示中出现不必要的