doubleyong
管理员
管理员
  • 最后登录2025-12-02
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:4579回复:0

[react]axios请求下载文件且携带token带参数的方法

楼主#
更多 发布于:2022-03-16 15:58
问题:
后端写的导出excel的接口,前端需要调用接口去下载文件;同时,需要带上token的方法


方法:
1. 直接axios 请求,头部带上token即可
2. 需要将后台返回的文件流,转成文件进行下载;


代码如下:
downFun() {
     axios({
       method: "POST",
       url: `/api/visitor/company/importTemplate`,//get也可以url?k=v&k2=v2
       responseType: 'arraybuffer', // 或者responseType: 'blob'
       xsrfHeaderName: 'Authorization',
       data:{},//post携带参数
       //params:{},get携带参数
       headers: {
         'Content-Type': 'application/json',
         'Authorization': getToken()
       }
   }).then(res => {
       const blob = new Blob([res.data], {
         type: 'application/vnd.ms-excel'//下载excel 也可下载zip压缩包 application/zip'
       })
       const objectUrl = window.URL.createObjectURL(blob)//可以直接下载的url链接
       window.location.href = objectUrl
       /*点击下载2
         let link = document.createElement('a')
         link.style.display = 'none'
         link.href = url
         link.setAttribute('download', 文件名)
         document.body.appendChild(link)
         link.click()
       */
     }).catch(err => {
       console.log(err)
     })
   }


参考:
请求二进制文件数据流下载文件携带token带参数
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号