前端发请求获取后端文件流并导出

export const downloadAuth = (fileName, href) => {
  let xhr = new XMLHttpRequest();
  //GET请求,请求路径url,async(是否异步)
  xhr.open('GET', href, true);
  //设置请求头参数的方式,如果没有可忽略此行代码
  xhr.setRequestHeader('Authorization', store.state.app.token);
  //设置响应类型为 blob
  xhr.responseType = 'blob';
  //关键部分
  xhr.onload = function (e) {
    //如果请求执行成功
    console.log(e);
    if (this.status == 200) {
      // console.log(this.response)
      let blob = this.response;
      let filename = fileName + ".xlsx";//如123.xls
      let a = document.createElement('a');
      //创键临时url对象
      let url = URL.createObjectURL(blob);
      a.href = url;
      a.download = filename;
      a.click();
      //释放之前创建的URL对象
      window.URL.revokeObjectURL(url);
    }
  };
  //发送请求
  xhr.send();
}

你可能感兴趣的:(xmlhttprequest,javascript)