如何修复 ERR_INVALID_CHUNKED_ENCODING 错误?

7
我有一个Clojure应用程序,作为代理服务。目标是通过路径“/grafana”代理请求到http://127.0.0.1:3000(Grafana服务),因此如果我通过浏览器访问http://127.0.0.1/grafana,它应该代理我的请求到端口3000并显示Grafana的用户界面。
我遇到的问题是,在浏览器中收到ERR_INVALID_CHUNKED_ENCODING响应。在Wireshark中,对端口3000的请求显示HTTP响应重新组合了3个TCP数据包。然而,通过我的代理进行的请求的响应没有被重新组装,导致分块错误。有人有任何想法如何解决这个问题吗?
谢谢。
1个回答

24

此问题是由于从代理服务返回响应到浏览器时导致的。响应包含头信息Transfer-Encoding: chunked。当响应从Grafana -> 代理服务 传输时,这个头是必需的,但当从代理服务 -> 浏览器传输时,它是不必要的。因此解决方案是在将响应发送回浏览器之前删除该头。


我自己也遇到了完全相同的问题! - Danger
@Danger 很高兴这对你有帮助 :) - Edmond
我在AWS ALB的另一端使用Chrome时遇到了net::ERR_HTTP2_PROTOCOL_ERROR错误,但事实证明,这个错误的根本原因(ALB对我们隐藏了)是Transfer-Encoding头部。 - undefined

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