前端vue+axios请求后端接口下载文件

$axios({
      method: "post",
      url: url,
      data: params,
      responseType: "blob",
    })
      .then((res) => {
           let blob = new Blob([res]);
           if ("msSaveOrOpenBlob" in navigator) {
              //ie使用的下载方式
              window.navigator.msSaveOrOpenBlob(blob, filename);
           } else {
              let elink = document.createElement("a");
              // 设置下载文件名
              elink.download = filename;
              elink.style.display = "none";
              elink.href = URL.createObjectURL(blob);
              document.body.appendChild(elink);
              elink.click();
              document.body.removeChild(elink);
          }
      })
      .catch((err) => {
        if (!handleError(err.response)) {
          error(err);
        }
      });

不使用接口请求的话就直接点击事件中

  window.open('https://xxx.xlxs')

原文地址:https://www.cnblogs.com/wxy0/p/14325814.html