方式一
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
async function download(){
const res = await axios.get(url, {
responseType:'blob'
})
const blob = new Blob([res.data], {
type: res.data.type,
});
const link = document.createElement('a');
const file = URL.createObjectURL(blob);
const fileName = new Date().getTime() + '.xls';
link.href = file;
link.download = fileName;
link.click();
URL.revokeObjectURL(link.href);
}
|
方式二
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
async function download(){
const res = await axios.get(url, {
responseType:'blob'
})
const blob = new Blob([res.data]);
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function (e) {
const fileName = `${+new Date()}.xls`;
const link = document.createElement('a');
link.href = e.target.result;
link.download = fileName;
link.click();
};
}
|
使用axios
请求返回文件流形式的接口时,记得带上responseType:'blob'
参数,
注意: 这个参数是属于请求参数, 不属于headers
参数!