首页 > 解决方案 > 在电子应用程序中使用 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],

标签: electronaxios

解决方案


以防其他人遇到类似问题,昨天我在 axios: 中遇到错误,Parse Error: Invalid header value char当我使用邮递员在我的应用程序外部调用它时它工作正常。

一开始我以为是我的环境配置或者node_modules包错误引起的。我尝试重新安装我的软件包,并尝试逐行删除我的环境配置代码,但这些都不起作用。

终于弄了半天发现axios最新版本0.19.0不支持高版本node!我通过简单地将我的节点版本降级到10.17.0来修复它


推荐阅读