vue+element 下载文件

下载文件,vue请求后台接口,返回的是二进制流,所以前端需要进行一点操作
如果没用框架,貌似直接将后台接口写进a标签href里即可,但是还是需要在请求头里加上token https://blog.csdn.net/m0_37149617/article/details/100933234 此链接是 a标签下载文件加token

vue用的axios请求

1、 import axios from 'axios' (安装不赘述)  

2、在导出按钮点击事件上
      

batchExport() {
      let url = ""; //请求下载文件的地址
      let token = ; //获取token
      axios
        .get(url, {
          headers: {
            token: token
          },
          responseType: "blob"
        })
        .then(res => {
          if (!res) return;
          let blob = new Blob([res.data], {
            type: "application/vnd.ms-excel;charset=utf-8"
          });
          let url = window.URL.createObjectURL(blob);
          let aLink = document.createElement("a");
          aLink.style.display = "none";
          aLink.href = url;
          aLink.setAttribute("download", "xxx.xls"); // 下载的文件
          document.body.appendChild(aLink);
          aLink.click();
          document.body.removeChild(aLink);
          window.URL.revokeObjectURL(url);
        })
        .catch(error => {
          this.$message.error(error);
        });
    }
原文地址:https://www.cnblogs.com/TreeCTJ/p/12509432.html