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

【Axios】解决Axios下载二进制文件返回空对象的问题

【Axios】解决Axios下载二进制文件返回空对象的问题

问题背景

在一个基于Vue 3的项目中,我们使用Axios下载Excel文件,但遇到了一个奇怪的问题:文件能成功下载下来,但打开时显示内容为[object Object]无法使用。

当我们执行下载代码:

const response = await downloadTaskResult(task.id)
const blob = new Blob([response], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })

浏览器控制台打印response发现,它竟然是一个空对象,而不是预期的二进制数据流。

排查过程

1. 检查API函数是否正确设置

首先查看了API函数实现:

export function downloadTaskResult(id) {return request({url: `/api/data-clean/tasks/${id}/download`,method: 'get',responseType: 'blob',responseHeaders: true});
}

确认responseType: 'blob'设置正确,表明我们希望Axios将响应作为二进制数据处理。

2. 尝试用curl直接请求接口

用curl命令直接请求后端接口,确认后端返回的确实是正确的Excel文件:

curl -v -o test_download.xlsx http://127.0.0.1:8000/api/data-clean/tasks/3/download

下载的Excel文件大小正常(约300KB),表明后端返回数据没问题。

3. 检查后端接口代码

查看后端FastAPI的文件下载接口:

@router.get("/tasks/{task_id}/download", summary="下载清洗结果")
async def download_result(task_id: int = Path(..., description="任务ID"),db: Session = Depends(get_db)
):# ...文件查找逻辑省略...# 获取文件名部分file_name = os.path.basename<
http://www.dtcms.com/a/180214.html

相关文章:

  • MapReduce报错 HADOOP_HOME and hadoop.home.dir are unset.
  • 课程审核流程揭秘:确保内容合规与用户体验
  • 高频算法面试题总结
  • 【25软考网工】第六章 网络安全(1)网络安全基础
  • 【MYSQL错误连接太多】
  • 如何构建容器镜像并将其推送到极狐GitLab容器镜像库?
  • 自定义prometheus exporter实现监控阿里云RDS
  • 5月9号.
  • 数据分析怎么做?高效的数据分析方法有哪些?
  • 多容器运行
  • Python训练营打卡DAY20
  • Android应用隐私合规:解决极光推送SDK提前收集WiFi信息问题
  • 三维底座+智能应用,重构城市治理未来
  • 【计算机视觉】OpenCV项目实战:get_inverse_perspective:基于OpenCV的透视图转化为不同平面
  • Uniapp编写微信小程序,使用canvas进行绘图
  • 企业如何将钉钉付款单高效集成到金蝶云星空?
  • 数智读书笔记系列032《统一星型模型--一种敏捷灵活的数据仓库和分析设计方法》
  • 开源数字人框架 AWESOME - DIGITAL - HUMAN:技术革新与行业标杆价值剖析
  • 从“山谷论坛”看AI七剑下天山
  • 十三、基于大模型的在线搜索平台——整合function calling流程
  • 【大语言模型ChatGPT4/4o 】“AI大模型+”多技术融合:赋能自然科学暨ChatGPT在地学、GIS、气象、农业、生态与环境领域中的应用
  • 捌拾叁- 量子傅里叶变换
  • 【深度学习】【目标检测】【Ultralytics-YOLO系列】YOLOV3核心文件detect.py解读
  • CSS:盒子模型
  • C# NX二次开发:宏录制实战讲解(第一讲)
  • 当当网Top500书籍信息爬取与分析
  • CSS transition过渡属性
  • # 交换排序:从冒泡到快速排序的深度解析
  • 全新UI彩虹外链网盘系统源码v5.6/前后端美化模板/整站+模版文件
  • 何时需要import css文件?怎么知道需要导入哪些css文件?为什么webpack不提示CSS导入?(导入css导入规则、css导入规范)