electron - 在电子应用程序中使用 axios 发出请求时的 HPE_INVALID_HEADER_TOKEN
问题描述
我有一个使用 axios 发出请求的电子应用程序。请求在 electron 中使用 code 出错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],
解决方案
以防其他人遇到类似问题,昨天我在 axios: 中遇到错误,Parse Error: Invalid header value char
当我使用邮递员在我的应用程序外部调用它时它工作正常。
一开始我以为是我的环境配置或者node_modules包错误引起的。我尝试重新安装我的软件包,并尝试逐行删除我的环境配置代码,但这些都不起作用。
终于弄了半天发现axios最新版本0.19.0不支持高版本node!我通过简单地将我的节点版本降级到10.17.0来修复它
推荐阅读
- c++ - How can I have code called (e.g., a function) when the player changes text cursor position in a multiline text box?
- angular - How to unit test just one function, without browser, on Angular
- react-native - React native: Is it possible to set initial position to SectionList without using scrollToLocation
- python - How to use thread in asyncio?
- python - 如何连接一个 Dataframe 列的值?
- amazon-web-services - 从 S3 存储桶中删除空文件
- vue.js - 静态 JS 文件未在 nuxtJS 的动态页面上加载
- mysql - 谷歌云平台 MYSQL 8 中的 lower_case_table_names
- hadoop - Hive 查询派生列并找到派生列的总数
- postgresql - 用适当的连接替换子查询