当前位置:   article > 正文

vue 项目下载(导出)功能 并携带请求头token_vue 下载get携带token

vue 下载get携带token

兄弟萌做项目时,经常会碰到导出,下载的功能,这里我参考了一些博主的论文,加上自己的理解,封装了一个全局的方法,以后项目中如果有下载(导出)功能只要引入该方法,一句代码就能gai决下载(导出)功能!

ok,发车!

可以自己建一个js文件写下载方法,引入man.js,也可以直接写在man.js(不建议)里,在这里我用的是post请求(get只是传参不一样,下次有需要补上吧)。

  1. import axios from 'axios'
  2. // 标注了自定义的 可以自己先写死地址和token测试下,很快的
  3. export function newExportsExcel (url, param = {}, xlsName) {
  4. //这是请求的地址 (自定义)
  5. let _herf = window.host
  6. // 这是请求头中需要的token (自定义)
  7. let token = window.sessionStorage.getItem('token')
  8. axios.post(`${_herf}${url}`, param, {
  9. responseType: 'blob',
  10. headers: {
  11. token,
  12. // 这是格式,看后段要不要你传 (自定义)
  13. ContentType:'application/json'
  14. },
  15. }).then(res => {
  16. let blob = res.data
  17. let reader = new FileReader()
  18. reader.readAsDataURL(blob)
  19. reader.onload = (e) => {
  20. let a = document.createElement('a')
  21. a.download = xlsName
  22. a.href = e.target.result
  23. document.body.appendChild(a)
  24. a.click()
  25. document.body.removeChild(a)
  26. }
  27. }).catch(err => {
  28. console.log(err.message)
  29. })
  30. }

后面两步非常简单,接下来,在man.js中挂载到全局,方便每个页面使用

  1. import Vue from 'vue'
  2. // 引入这个下载(导出)方法
  3. import { newExportsExcel } from '@/utils/exports'
  4. // 挂载到全局
  5. Vue.prototype.$newExportsExcel = newExportsExcel

然后,起飞!哪里页面需要方法就用在哪里!是不是so easy?下课!

  1. //导出
  2. handleExportExcel () {
  3. // 也可以直接把this.formData写在实参里,就不需要下列这行代码了
  4. const param = this.formData
  5. // 后端的地址、参数、下载后自定义的文件名.xlsx'
  6. this.$newExportsExcel('/zy/exportExcel', param, '安全页面表格.xlsx')
  7. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/283660
推荐阅读
相关标签
  

闽ICP备14008679号