vue中使用axios发送post请求实现excel下载
import { getToken } from '@/utils/auth.js' import axios from 'axios' axios.defaults.headers.post['Content-Type'] = 'multipart/form-data' axios.create({ withCredentials: true, timeout: 5000 }) if (getToken()) { axios.defaults.headers.common['X-Token'] = getToken() }
axios({ method: 'post', url: `/api/potentialCustomers/export`, responseType: 'blob', data: param }).then(res => { let fileName = res.headers['content-disposition'].split(';')[1].split('=')[1].replace(/\"/g, '') let blob = new Blob([res.data], { type: "application/vnd.ms-excel" }) if ('msSaveOrOpenBlob' in navigator) { window.navigator.msSaveOrOpenBlob(blob, fileName); } else { const elink = document.createElement('a'); elink.download = fileName; elink.style.display = 'none'; elink.href = URL.createObjectURL(blob); document.body.appendChild(elink); elink.click(); URL.revokeObjectURL(elink.href); document.body.removeChild(elink); } }).catch(res => { console.log(err) })