我有一个正在运行的nodejs http服务器,我想更改特定站点上的内容(有点像我自己的私有(private)广告拦截器)。我决定用trumpet来做到这一点。现在的问题是,当 rumpet 注入(inject)新内容并将其通过管道传输到 http 响应(http.IncomingMessage)时, headers['content-length'] 值不再有效。
有些浏览器似乎并不关心(W7 上的 Chrome/Firefox),其他浏览器则立即崩溃(iPad 上的 Safari)。我尝试完全删除内容长度 header ,得到类似的结果(Safari 永远等待)。
切换内容后如何正确设置响应的内容长度?我发现harmon ,但我只需要最后一点,所以哈蒙感觉开销太大了。或者这不是那么微不足道的事情吗?
如果您在发送 header 时不知道响应有多大(此处的情况),则需要使用 chunked transfer encoding .
如果您未指定任何Content-Length
,则 Node 应默认为分块传输编码。删除设置 Content-Length
header 的代码,或尝试 res.removeHeader('Content-Length')
。
我是一名优秀的程序员,十分优秀!