我有一个电子应用程序,它使用axios发出请求。电子内的请求出现错误,代码为HPE_INVALID_HEADER_TOKEN
。
相同的请求代码可以在电子外部正常运行(即运行节点test.js)。我曾尝试按照其他问题的建议使用http-parser-js,但仍然存在此问题。
const axios = require("axios");
async function getter() {
try {
const response = await axios.get(url);
console.log(response.data);
} catch (error) {
console.log(error)
}
}
getter();
{ Error: Parse Error
at TLSSocket.socketOnData (_http_client.js:451:22)
at TLSSocket.emit (events.js:194:13)
at TLSSocket.EventEmitter.emit (domain.js:469:20)
at addChunk (_stream_readable.js:296:12)
at readableAddChunk (_stream_readable.js:277:11)
at TLSSocket.Readable.push (_stream_readable.js:232:10)
at TLSWrap.onStreamRead (internal/stream_base_commons.js:165:17)
bytesParsed: 636,
code: 'HPE_INVALID_HEADER_TOKEN',
reason: 'Invalid header value char',
config:
{ adapter: [Function: httpAdapter],
transformRequest: { '0': [Function: transformRequest] },
transformResponse: { '0': [Function: transformResponse] },
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
答案 0 :(得分:0)
在使此代码生效之前,我尝试了几件事:
这些都没有解决问题。我终于通过删除然后重新添加请求中使用的标头使此代码正常工作。
答案 1 :(得分:0)
以防万一有人遇到类似问题,昨天我在axios中遇到了一个错误:Parse Error: Invalid header value char
,当我使用邮递员在我的应用程序外部调用它时,它可以正常工作。
起初,我认为这是由于我的环境配置或node_modules软件包错误引起的。我尝试重新安装软件包,并尝试逐行删除环境配置代码,但是这些都不起作用。
最后,我花了半天的时间才发现最新版本的axios 0.19.0 不支持高版本的node!我通过简单地将节点版本降级到 10.17.0
来解决了该问题