Postman带JWT可正常下载Excel 但JS(Axios)中下载的文件损坏
Axios携带JWT令牌下载Excel文件损坏问题
我需要通过AJAX(使用Axios)下载Excel文件,之所以采用这种调用方式,是因为访问目标资源时必须携带JWT令牌完成鉴权。
目前我接收到的文件响应内容如下所示:

查看响应内容可以发现,返回的是原始二进制流数据。在Postman中配置好对应令牌后,点击Save and download按钮即可正常获取完整可用的文件。以下是我编写的JS代码:
requestWithFullResponse({ url: url, method: 'GET', }, this.props.token, false).then((response) => { const responseData = response.data // 已经试过配置多种文件MIME类型,均无法正常生成可打开的文件 // var blob = new Blob([responseData], { type: `${response.headers['content-type']};charset=utf-8` }); // var blob = new Blob([responseData], { type: 'application/octet-stream;charset=utf-8' }); var blob = new Blob([responseData], { type: 'application/octet-stream' }); saveAs(blob, filename, true) }).catch((error) => { console.log('Error downloading file -> ', error); });
当前代码可以正常触发下载流程,但用LibreOffice打开下载得到的文件时,会直接提示文件损坏。我现在有两个待解决的疑问:
- 我的实现遗漏了什么关键配置,才会导致下载的文件无法正常打开?
- 有没有办法查看Postman在执行文件下载操作时的底层处理逻辑?
非常感谢大家提供的帮助。
内容的提问来源于stack exchange,提问作者Genarito
相关产品推荐
相关产品推荐

