前几天做项目的时候遇到了下载跨域的问题
找到的解决办法就是 后端返回图片的文件流,然后前端使用blob()转换图片格式下载
let url = "后端返回文件流的地址"
fetch(url,{method: 'get',headers:{'Content-Type': 'image/jpeg'}}).then(
res=>res.blob().then(blob=>{
var reader = new FileReader();
reader.readAsDataURL(blob); // 转换为base64,可以直接放入a标签href
reader.onload = function (e) {
var down = document.createElement('a'); // 转换完成,创建一个a标签用于下载
down.download = name;
down.href = String(e.target.result);
// document.appendChild(down)
down.click();
down.remove();
}
})
)