之前的代码 使用FileReader 读取流文件 会受到chrome浏览器的文件传输的大小限制;
现在改为
URL.createObjectURL 方法导出 不受chrome浏览器文件传输限制
let xhr = new XMLHttpRequest(); xhr.open("GET", url, true); // 也可以使用POST方式,根据接口 xhr.responseType = "blob"; // 返回类型blob,XMLHttpRequest支持二进制流类型 xhr.onload = function() { if (this.status === 200) { let blob = this.response; //使用response作为返回,而非responseText const objectURL = URL.createObjectURL(new Blob([blob], { type: 'text/xls' })) // chrome不受文件你大小限制导出文件 // let reader = new FileReader(); // reader.readAsDataURL(blob); // 转换为base64,可以直接放入a标签href // objectURL.onload = function(e) { // 转换完成,创建一个a标签用于下载 let a = document.createElement("a"); a.download = "xxxxxx.xlsx"; a.href = objectURL a.click(); layer.msg('下载成功'); // }; } else { layer.msg('下载失败'); } };