- 现在有一个导出文件的需求,后台需要post传递参数
- 普通的文件导出使用下面的方式
location.href = 'xxxxxx?' + params + token
- 现在需要使用axios的put方法
axios.put('url', data, {responseType: 'blob'}).then(res => {
download(res, [callback])
})
const download = (res, callback) => {
const disposition = res.headers['content-disposition'];
// 拿到文件名
let filename = disposition.split('filename=')[1];
let blob = new Blob([res.data]);
// 兼容ie
if ('msSaveOrOpenBlob' in navigator) {
window.navigator.msSaveOrOpenBlob(blob, filename);
} else {
const URL = window.URL || window.webkitURL;
let objectUrl = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = objectUrl;
a.download = filename;
a.click();
URL.revokeObjectURL(objectUrl);
}
callback && callback();
}