admin 管理员组文章数量: 887169
近期运维人员提出一个bug,页面中的文件在IE浏览器不可以下载,但是在火狐和谷歌浏览器是正常下载的。
控制台发现ie下载时报错:Unhandled promise rejection Error: 拒绝访问。刚开始以为是promise问题,后来发现是IE对于base64流数据有独特的处理方式。添加下方标红代码块后问题解决。
<a style={{ marginRight: 10 }} onClick={() => { new Promise((resolve, reject) => { axios({ method: 'post', url: 'xxxxxxxxxxxxxxxxxxxxx', headers: { Authorization: JSON.parse(sessionStorage.getItem("xxxxxxxx")).value }, responseType: 'blob' }).then(res => { resolve(res); }).catch(err => { reject(err); }); }).then((res) => { // 判断当前是否为IE浏览器 if(!!window.ActiveXObject || "ActiveXObject" in window){ // console.log("是ie浏览器,下载做特殊处理"); // 保存或打开两个选项 window.navigator.msSaveOrOpenBlob(res.data,record.originalName); // 只有保存选项 window.navigator.msSaveBlob(res.data,record.originalName); } else { // console.log("非ie浏览器"); downloadFile(res.data, record.originalName, record.fileSuffix) } }) }}>下载3</a>
版权声明:本文标题:关于IE浏览器下载流数据的处理 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1723992216h746216.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论