开发避坑指南(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)
});
相关推荐
Yolanda9419 分钟前
【项目经验】钉钉免密登录实现
前端·javascript·钉钉
2601_9496130222 分钟前
flutter_for_openharmony家庭药箱管理app实战+药品详情实现
java·前端·flutter
ttod_qzstudio1 小时前
Vue 3 中 toRaw 的取舍之道:以 Babylon.js 3D 开发为例
vue.js·babylonjs
We་ct1 小时前
LeetCode 15. 三数之和:排序+双指针解法全解析
前端·算法·leetcode·typescript
美狐美颜SDK开放平台1 小时前
直播场景下抖动特效的实现方案:美颜sdk开发经验分享
前端·人工智能·美颜sdk·直播美颜sdk·视频美颜sdk
草青工作室1 小时前
java-FreeMarker3.4自定义异常处理
java·前端·python
美狐美颜sdk1 小时前
抖动特效在直播美颜sdk中的实现方式与优化思路
前端·图像处理·人工智能·深度学习·美颜sdk·直播美颜sdk·美颜api
Mr Xu_1 小时前
Vue3 + Element Plus 实战:App 版本管理后台——动态生成下载二维码与封装文件上传
前端·javascript·vue.js
闻哥1 小时前
从 AJAX 到浏览器渲染:前端底层原理与性能指标全解析
java·前端·spring boot·ajax·okhttp·面试
比特森林探险记1 小时前
Vue基础语法与响应式系统详解
前端·javascript·vue.js