JS异步下载EXCEL
异步下载excel,
* 电脑桌面版浏览器测试了Safari和Chrome支持
* 支持的手机浏览器
----Safari(需要延迟删除href属性,不然会没反应,调试发现原因是报中断资源的错)、Chrome、华为自带浏览器、小米自带浏览器
* 经测试手机不支持的
----夸克、UC、QQ浏览器,OPPO自带、三星自带、魅族自带
以上仅供参考,相信随着技术的进步会慢慢支持的
上代码↓↓↓
download: function () { let param = ...; let xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'blob' xhr.send(param); xhr.onload = function() { if (this.status === 200) { let content = xhr.getResponseHeader('content-disposition'); // let blob = new Blob([xhr.response], {type:xhr.getResponseHeader('Content-Type')}); let blob = xhr.response; let oa = document.createElement('a'); oa.href = URL.createObjectURL(blob); oa.download = decodeURI(content).slice(20); document.body.appendChild(oa); oa.click(); setTimeout(function () { window.URL.revokeObjectURL(oa.href); document.body.removeChild(oa); }, 3000) }else{ ...... } } }