加个参数 responseType: 'blob',
普通的post请求
export const post = (url, data) => {
let data1 = qs.stringify(data)
return axios.request({
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
url: url,
data: data1,
method: 'post'
})
}
流post
export const doExport = (url, data) => {
let data1 = qs.stringify(data)
return axios.request({
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
responseType: 'blob',
url: url,
data: data1,
method: 'post'
})
}
完整的
doExport('sales-order/detail', { id: this.selectRow[0].id, download: 1 }).then(res => { const content = res.data const blob = new Blob([content], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}) let fileName = this.selectRow[0].order_sn + '.xlsx' if ('download' in document.createElement('a')) { // 非IE下载 let link = document.createElement('a') link.download = fileName link.style.display = 'none' link.href = URL.createObjectURL(blob) document.body.appendChild(link) link.click() URL.revokeObjectURL(link.href) // 释放URL 对象 document.body.removeChild(link) } else { // IE10+下载 navigator.msSaveBlob(blob, fileName) } }).catch(err => { console.log(err) })