Axios如何在不解压gzip的情况下获取响应体

4
我有2个 express 服务器,一个作为后端解决查询到数据库的请求,另一个作为代理重定向请求。
前端通过代理向每个数据请求发送请求,代理会通过 axios 发送修改后的请求到后端以获取数据结果。
后端服务器以 gzip 格式压缩响应体。但是,axios 默认会解压后端返回的响应,然后将原始大小发送给前端。
我希望 axios 保持响应压缩状态,以便负责解压的是用户的浏览器。
是否有任何选项或方法可以实现这一点?
编辑: Axios 请求头包括:
Accept-Encoding: gzip, deflate, br

然而,axios响应头缺少'Content-Encoding: gzip'字段:

enter image description here

1个回答

5

这是一个旧问题,但仍然是“axios keep gzip”或类似问题的Google搜索结果中的第一个。

Axios现在支持其请求选项 (RequestOptions) 中的decompress选项。将其设置为false,它不会解压缩响应并将保留原始的Content-Encoding头部。


你是指“在前端”对吧?是的,它只能在Node中工作,但这正是OP所需要的:“我有两个express服务器,一个作为后端解析查询到数据库,另一个作为代理重定向请求。” - jiri-vyc
不,我的意思是Node,但我删除了我的评论,因为它是不正确的。'decompress'确实在Node中起作用,但是decompress是在去年七月才在Axios中引入的,而我的项目被固定在去年早些时候的一个版本上,所以当我尝试时它没有起作用。是的,我的评论并不是针对OP的,只是进一步阐述了您有帮助的答案,这让我点了赞。 :) - Chris Beiter
抱歉,只是为了完整性,实际上它是在2020年8月的一个完整版本中引入的,版本号为0.20.0,以便为大家节省查找的时间。https://github.com/axios/axios/blob/master/CHANGELOG.md - Chris Beiter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接