Nodejs请求:HPE_INVALID_HEADER_TOKEN

时间:2016-04-14 16:08:23

标签: node.js http request

我使用HPE_INVALID_HEADER_TOKEN模块在​​某个页面上收到request。根据我在Google上发现的情况,这是由服务器响应错误/格式错误引起的,但后者不在我的控制范围内。我可以配置请求忽略无效的标题,还是只给我整个原始响应进行处理?

4 个答案:

答案 0 :(得分:4)

解决方案就是这个库:https://www.npmjs.com/package/http-parser-js

所以要解决你的问题:

  1. npm install http-parser-js

  2. 在require(' request')

    之前添加此代码
    process.binding('http_parser').HTTPParser = require('http-parser-js').HTTPParser;
    

答案 1 :(得分:2)

我遇到了同样的问题,运行这样的代码对我来说nodemon --http-parser=legacy

答案 2 :(得分:1)

Node v12具有一个新的解析器,该解析器的标头验证更加严格,可能导致相同的错误,尤其是在使用Imperva / Incapsula的网站在HTTP 1.1响应中包含无效标头的情况下。

一种临时解决方案是在节点的命令行或环境变量--http-parser=legacy中使用NODE_OPTIONS选项。

答案 3 :(得分:0)

通过在 RAW 模式下检查 Chrome Dev-Tools 中的标头,我能够找到问题所在(哪个标头导致了这个问题)。

chrome dev tools screenshot

原来我有没有类型的“内容类型:”。