1. 程式人生 > >vue.js中使用axios傳送post請求實現excel下載

vue.js中使用axios傳送post請求實現excel下載

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();