下载文件-post方式

   axios({
      // 用axios发送post请求
      method: 'post',
      url: '', // 请求地址
      data: req, // 参数
      headers: {
        'content-type': 'application/json; charset=utf-8',
      },
      responseType: 'blob', // 表明返回服务器返回的数据类型
    }).then((res) => {
      downloadFile (res.data);
    });

  const downloadFile = (data) => {
    let blob = new Blob([data]);
    let url = window.URL.createObjectURL(blob);
    const link = document.createElement('a'); // 创建a标签
    link.href = url;
    let date = new Date();
    link.download = 'xx.xls'; // 重命名文件
    link.click();
    URL.revokeObjectURL(url); // 释放内存
  };
 

 

    fetch('/xxx'
      ,
      {
        method: 'POST',
        body: JSON.stringify(params),
        credentials: 'include',
        headers: new Headers({
          'Content-Type': 'application/json',
        })
      }
    ).then(res => res.blob().then(blob => {
      let fileReader = new FileReader()
        fileReader.readAsText(blob, 'utf-8')
        fileReader.onload = function () {
          try {
            let info = JSON.parse(fileReader.result);//可以获取到返回的信息 进行报错提示
          } catch (err) {}
        }
      let a = document.createElement('a');
      let url = window.URL.createObjectURL(blob);
      a.href = url;
      a.download = '【下载下来的文件名】.xlsx'
      a.click();
      window.URL.revokeObjectURL(url);
    }))

 

posted @ 2022-06-21 11:20  天官赐福·  阅读(368)  评论(0编辑  收藏  举报
返回顶端