开发避坑指南(70):Vue3 Http请求头携带token下载pdf文件解决方案

问题

Vue3中http请求如何下载预览pdf文件?请求头中如何携带token?

解决办法

使用axios下载PDF文件,通过Blob对象处理二进制数据流实现。请求头中携带token则通过在axios请求中添加headers实现。代码如下:

1、main.js中全局引入axios或则vue组件中单独引入axios

vue 复制代码
import axios from 'axios'

2、使用axios发送下载请求

vue 复制代码
axios({
  method: 'get', // 使用GET请求方法
  responseType: 'blob', // 指定响应数据类型为二进制大对象(Blob),用于处理文件流
  url: url, // 请求的PDF文件URL地址
  headers: {
    'X-Auth-token': token // 在请求头中添加认证token,用于身份验证
  }
}).then(res => {
  // 将接收到的二进制数据创建为Blob对象,使用响应头中的content-type指定文件类型
  const blob = new Blob([res.data], { type: res.headers["content-type"] });
  
  // 浏览器兼容性处理:优先使用标准URL接口,回退到webkitURL(兼容旧版浏览器)
  var URL = window.URL || window.webkitURL;
  
  // 为Blob对象创建临时URL链接,可用于文件访问
  let href = URL.createObjectURL(blob);
  
  // 在新窗口或标签页中打开PDF文件进行预览
  window.open(href)
});
相关推荐
不爱说话郭德纲21 分钟前
告别漫长的HbuilderX云打包排队!uni-app x 安卓本地打包保姆级教程(附白屏、包体积过大排坑指南)
android·前端·uni-app
唐叔在学习42 分钟前
[前端特效] 左滑显示按钮的实现介绍
前端·javascript
用户5282290301801 小时前
【学习笔记】ECMAScript 词法环境全解析
前端
青青家的小灰灰1 小时前
React 架构进阶:自定义 Hooks 的高级设计模式与最佳实践
前端·react.js·前端框架
Angelial1 小时前
Vite 性能瓶颈排查标准流程
前端
不要秃头啊1 小时前
别再谈提效了:AI 时代的开发范式本质变了
前端·后端·程序员
青青家的小灰灰1 小时前
深入理解事件循环:异步编程的基石
前端·javascript·面试
用泥种荷花1 小时前
【LangChain.js学习】 向量数据库(内存/持久化)
前端
simon_luv_pho2 小时前
一行代码把网页变成 AI Agent?
前端
兆子龙2 小时前
模块联邦(Module Federation)详解:从概念到手把手 Demo
前端·架构