请求二进制文件数据流下载文件携带token带参数

vue中axios通过请求的方式获取二进制文件的数据流,post方式携带token及参数

标题将数据流生成链接下载

    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)
      })
    }

你可能感兴趣的:(前端技术)