后端返回的数据类型:Content-Type: application/octet-steam
vue请求需要定义返回的类型
getZhcxExport(this.listQuery).then(res => {// 判断返回的数据是二进制流还是jsonif (res.data.type === 'application/json') {let reader = new FileReader()reader.readAsText(res.data, 'utf-8')reader.onload = (e) => {const { message } = JSON.parse(reader.result)this.$message.warning(message)}} else {this.download(res.data) // 将接收的流传入即可}
})
download(data) {let url = window.URL.createObjectURL(data)let link = document.createElement('a')link.style.display = 'none'link.href = urllink.download = '综合查询' // 设置文件名document.body.appendChild(link)link.click()window.URL.revokeObjectURL(link.href)
}