1、get下载
let url = "下载地址";
const a = document.createElement("a");
a.href = url;
a.style.display = "none";
a.click();
document.body.removeChild(a)
2、post下载
// 以axios为例
axios.post(
url, //下载路径
data, //接口传参
{
responseType: "blob" //也有类型是arraybuffer的
}
).then((res)=>{
//获取文件名,需与后端约定,如头文件中没有content-disposition字段,是后端没有配置或者配置错误
const filename = decodeURIComponent(res.headers['content-disposition'].split('filename=')[1]);
const blob = res.data;
const a = document.createElement("a");
const url = window.URL.createObjectURL(blob);
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
document.body.removeChild(a);
})
3、axios模拟表单提交数据
import qs from "qs"
axios.post(
url,
qs.stringify({ // 数据处理
name:""
}),
{
'Content-Type': 'application/x-www-form-urlencoded'
}
).then((res)=>{})