用Axios调用导出方法返回的文件流下载时控制台返回乱码
vue需要用 new Blob([data])来处理
后台接口
@PostMapping(value = "exportKeHuFormat")@ApiOperation(value = "导出-客户信息导入模板", notes = "")public void exportKeHuFormat(HttpServletRequest request, HttpServletResponse response){
try {
api.exportKeHuFormat(request,response);} catch (Exception e) {
e.printStackTrace();}}
前台方法
axios.post(local+'kehu/exportKeHuFormat',{
},{
headers:{
'Authorization': sessionStorage.getItem('token')},responseType: 'blob',}).then(res => {
let blob1 = new Blob([res.data]);//new Blob([res])中不加data就会返回[objece objece]内容(少取一层)let fileName = '客户信息.xlsx';//下载文件名称let elink = document.createElement('a');elink.download = fileName;elink.style.display = 'none';elink.href = URL.createObjectURL(blob1);//创建一个DOMString包含了一个对象URL,该URL可用于指定源 参数对象的内容。document.body.appendChild(elink);elink.click();URL.revokeObjectURL(elink.href); // 释放URL 对象document.body.removeChild(elink);}).catch(err => {
})