Node.js Nodejs请求:HPE\u无效\u头\u令牌
我使用Node.js Nodejs请求:HPE\u无效\u头\u令牌,node.js,http,request,Node.js,Http,Request,我使用request模块在特定页面上接收HPE\u无效\u头\u令牌。从我在谷歌上发现的情况来看,这是由错误/格式错误的服务器响应引起的,但后者不在我的控制之下。我可以将请求配置为忽略无效的头,还是只给我整个原始响应进行处理?解决方案是使用以下库: 因此,要解决您的问题: npm安装http解析器js 在require('request')之前添加此代码 节点v12有一个新的解析器,它对头验证更严格,这可能会导致相同的错误,特别是对于使用Imperva/Incapsula的站点,这些站点在HT
request
模块在特定页面上接收HPE\u无效\u头\u令牌。从我在谷歌上发现的情况来看,这是由错误/格式错误的服务器响应引起的,但后者不在我的控制之下。我可以将请求配置为忽略无效的头,还是只给我整个原始响应进行处理?解决方案是使用以下库:
因此,要解决您的问题:
npm安装http解析器js
在require('request')之前添加此代码
节点v12有一个新的解析器,它对头验证更严格,这可能会导致相同的错误,特别是对于使用Imperva/Incapsula的站点,这些站点在HTTP 1.1响应中包含无效头
临时解决方案是在节点的命令行或环境变量中使用--http parser=legacy
选项
由于v12.15.0
和v10.19.0
可以执行以下操作:
http.request(url, { insecureHTTPParser: true })
更多信息可在此处找到:
编辑:--http parser=legacy
在最新版本(包括v12的次要版本)中不再受支持。较新节点版本的解决方案是使用不安全的http解析器。我也遇到了同样的问题,像这样运行代码对我很有效nodemon--http parser=legacy
通过在原始模式下检查Chrome开发工具中的头,我能够找到问题所在(哪个头导致了这个问题)
事实证明,我的“内容类型:”没有类型。是的,谢谢,事实上我已经找到了它,它为我解决了问题)遗憾的是,它没有为我解决问题-我最终编写并调用了一个单独的脚本,它卷曲了我需要的数据。恼人的是,仅仅因为Node对Headers很挑剔,就不得不这样解决这个问题。这个答案似乎不再有效了。节点v12引入了一个新的llhttp
解析器
http.request(url, { insecureHTTPParser: true })