当前位置: 首页 > news >正文

vue中post请求返回二进制流文件下载

1 .调用接口返回的如下图所示,此时看到是一个流文件

2.不管是get请求还是post请求都需要加上 下面这行代码

  responseType: "blob",

 3.我们自行二次封装的axios可能会导致乱码现象,建议直接用axios调用接口请求

 4.关于Excel导出 POI 响应头设置 Content-Type: application/vnd.ms-excel 异常解决方法,可以在需要的请求头处多加一个

axios.defaults.headers['Content-type'] = 'application/vnd.ms-excel;charset=utf-8';

打印出来的res,通过a标签下载就可以了 

完整代码如下 

function exportData(res: any) {let url = window.URL.createObjectURL(new Blob([res], { type: '.xlsx' }));let a = document.createElement('a');a.style.display = 'none';a.href = url;a.setAttribute('download', `数据统计报表.xlsx`);document.body.appendChild(a);a.click();url = window.URL.revokeObjectURL(url);document.body.removeChild(a)
}
//导出文件
const microApptaskExport = async (params: object = {}) => {axios.defaults.headers["Authorization"] = userState.token;axios.defaults.headers['Content-type'] = 'application/vnd.ms-excel;charset=utf-8';const res = await axios.post("http:// 此处为请求地址",params,{responseType: "blob",});if (res) {console.log(res, '获取到的res')exportData(res.data);}
}

 注:如果下载的文件为 [object,object] ,将res.data给函数就行

踩坑一 : 封装的index.ts请求中使用了mockjs 这会导致 blob 置空 ,建议直接使用axios请求

踩坑二:请求地址为http这时控制台会报错

解决方法 http => https,没有别的办法 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • (回溯) LeetCode 131. 分割回文串
  • 【Linux进程篇】进程终章:POSIX信号量线程池线程安全的单例模式自旋锁读者写者问题
  • 图像的特征提取
  • 树莓派4/5:运行Yolov5n模型(文末附镜像文件)
  • LVS实验——部署DR模式集群
  • VSCODE platformio ESP32-S3 内置 JTAG 接口断点单步调试笔记
  • 【云服务器系列】基于华为云OBS实现Picgo和Typora的完美融合
  • 常见硬件工程师面试题(四)
  • 自动化测试 — selenium + Java
  • Docker最佳实践(四):安装redis
  • IDEA彻底卸载以及安装总结
  • 江科大/江协科技 STM32学习笔记P21
  • 加密案例分享:电子设备制造行业
  • 鸿蒙(API 12 Beta2版)媒体开发【Audio Kit简介】音频服务
  • python实战:数据分析基础知识
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • CentOS6 编译安装 redis-3.2.3
  • CSS中外联样式表代表的含义
  • Redux 中间件分析
  • spring-boot List转Page
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Vue--数据传输
  • 讲清楚之javascript作用域
  • 每天一个设计模式之命令模式
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 通信类
  • 我的面试准备过程--容器(更新中)
  • 我建了一个叫Hello World的项目
  • 一道面试题引发的“血案”
  • 异步
  • 因为阿里,他们成了“杭漂”
  • 在Mac OS X上安装 Ruby运行环境
  • Nginx实现动静分离
  • 阿里云服务器如何修改远程端口?
  • 数据可视化之下发图实践
  • # 安徽锐锋科技IDMS系统简介
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (70min)字节暑假实习二面(已挂)
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (libusb) usb口自动刷新
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (黑马C++)L06 重载与继承
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .gitignore不生效的解决方案
  • .NET C# 操作Neo4j图数据库
  • .NET 回调、接口回调、 委托
  • .Net 路由处理厉害了
  • .net 无限分类
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET程序员迈向卓越的必由之路
  • .NET开源纪元:穿越封闭的迷雾,拥抱开放的星辰