通过获取后端接口,返回二进制内容,前端根据二进制数据生成文件这里以excel为例,具体生成文件可以修改文件名即可
API_SYSTEMSET.logDownload(param).then(data => {
let content = data
let filename = '名称.xls'
const blob = new Blob([content])
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename)
} else {
let aTag = document.createElement('a')
aTag.download = filename
aTag.href = URL.createObjectURL(blob)
document.body.appendChild(aTag) // 添加节点到dom中,兼容firefox
aTag.click()
URL.revokeObjectURL(aTag.href)
setTimeout(function () { document.body.removeChild(aTag) }, 1000) // 移除dom节点
}
})
注:需要注意的是在请求头中注意配置type,responseType: 'arraybuffer'