js通过请求接口下载文件

这里写自定义目录标题

说明

在开发项目中,我们经常会碰到,后端给出的接口,前端需要在触发那一刻请求接口,直接下载文件。下面直接列出下载文件流的代码

let token=local.get("token",null); // 通过自己项目的方式,拿到token
let init = {
    method: 'POST',
    mode: 'cors',
    cache: 'no-cache',
    headers:{
    	'Content-Type': "application/json",
        'X-Token': token
    },
    // 此处的list是请求接口需要的传参,根据自己项目接口情况来写
    body: JSON.stringify(list) 
};
// api/api/api 为请求的接口
fetch("api/api/api", init).then((response) => {
    return response.blob();
}).then(mydata => {
    let url = window.URL.createObjectURL(mydata);
    let a = document.createElement("a");
    a.href = url;
    // 将文件流转换为excel, excel文件名以当前下载时间命名
    a.download = `${moment().format("YYYYMMDDHHmmss")}.xls`;
    if (document.all) {
        a.click();
    } else {
        let evt = document.createEvent("MouseEvents");
        evt.initEvent("click", true, true);
        a.dispatchEvent(evt);
    }
    // 此处可写入请求成功时项目相关功能的处理
}).catch((error) => {
    // 接口请求失败时,错误提示信息可在此处弹出
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值