vue.js中使用axios傳送post請求實現excel下載
阿新 • • 發佈:2018-12-20
1. 前端:
this.axios({
method: 'post',
responseType: 'blob',
url: 'testUrl',
data: {'id': id}
}).then(res => {
let fileName = res.headers['content-disposition'].split(';')[1].split('=')[1].replace(/\"/g,'')
let type = res.headers['content-type']
let blob = new Blob([res.data], {type: type})
// IE
if (window.navigator.msSaveBlob){
window.navigator.msSaveBlob(blob, fileName)
}
})
2. 後端:(僅response設定部分)
String headString = "attachment; filename=\"" + new String("testUrl".getBytes("gb2312"), "ISO8859-1") + "\"";
response.setContentType("octets/stream");
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", headString);
out = response.getOutputStream();