使用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); } }));
添加回答
举报
0/150
提交
取消