mock服务器返回文件,mock模块会影响原生的ajax请求,使得服务器返回的blob类型变成乱码...

在React项目中,使用axios请求导出Excel文件时,设置responseType: 'blob'无效,返回数据为乱码。问题源于MockJS在初始化时将responseType设为空,导致xhr响应被拦截。解决方法是注释掉MockJS的引入,避免影响原生ajax请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

react项目中遇到前端在处理后端传来的文件流实现导出Excel文件功能,responseType:'blob'类型设置无效问题。

axios请求设置responseType: 'blob' 返回类型

const axios = require('axios');

export() {

const token = sessionStorage.getItem('token');

axios({

method: 'post',

url: `/list/downXlsx`, // 请求地址

data,

responseType: 'blob', // 表明返回服务器返回的数据类型 这里注意要加上responseType

headers: {

Authorization: `Bearer${token}`

}

}).then((res) => { // 处理返回的文件流

const blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })

const fileName = 'down.xlsx'

const alink = document.createElement('a')

alink.download = fileName

alink.style.display = 'none'

alink

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值