使用Fetch请求服务,后端服务没有生成具体文件,返回的是字节流,用下面的方式在Chrome可以使用,但是无法兼容IE,求助解决方案。(要求不在服务器生成文件;由于项目问题,要求使用fetch。)
fetch(url).then(res => res.blob().then(blob => {
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob); // 获取 blob 本地文件连接 (blob 为纯二进制对象,不能够直接保存到磁盘上)
var filename = res.headers.get('Content-Disposition');
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
}));
=======================================================================================
找到了IE10+的解决方法,但是不兼容IE9┓(;´_`)┏
fetch(url).then(res => res.blob().then(blob => {
var filename = res.headers.get('Content-Disposition');
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
}else {
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob); // 获取 blob 本地文件连接 (blob 为纯二进制对象,不能够直接保存到磁盘上)
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
}
}));
素胚勾勒不出你
相关分类