gzip 压缩导致对错误请求的空响应,否则工作正常

gzip compression results in empty response on bad request, works fine otherwise

我正在使用 angular 和以下 header:

从 Web 客户端发出 HTTP POST 请求
Accept-Encoding: gzip, deflate, br

服务器响应 content-type 是 application/json。当响应状态为 200 时,一切正常,我的响应有一个 body 可以从客户端看到。但是,当响应状态为 400 时,根据客户端响应 body 为空,但我确定我正在服务器上填充它。此外,如果我从上面的请求 header 中删除 "gzip"(没有任何变化 server-side),那么即使是 400 响应状态,一切都可以正常工作,换句话说,我可以看到响应 body 来自客户端。我是 运行 Tomcat,服务器端 Spring。

我这里的问题似乎真的是 gzip 引起的,但我不明白为什么或如何解决它,任何帮助将不胜感激。

提前致谢。

我们弄清楚了,我们使用的是旧版本的 ehcache-web 库,因此它的 GZipFilter 没有 return 除了 200 之外的任何状态的响应正文。升级到版本 2.0该库的 .4 解决了这个问题。