You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新Node.js后React项目HPM代理证书报错或不跳转如何解决?

解决方案

根因说明

Node.js 17+版本强化了TLS证书校验逻辑,同时webpack-dev-server依赖的http-proxy-middleware v2+版本调整了secure参数的处理规则,才会出现你遇到的两种异常:关闭secure: false触发证书校验报错,开启后代理规则不生效。

解决步骤

  • 新增自定义HTTPS Agent配置
    原secure: false参数在高版本依赖中无法生效,需要手动创建忽略证书校验的HTTPS Agent,修改你的devServer配置如下:
    const https = require('https');
    devServer: {
      contentBase: './dist',
      hot: true,
      proxy: {
        '/api': {
          target: 'https://localhost:8443/test',
          pathRewrite: { '^/api': '' },
          secure: false,
          changeOrigin: true,
          // 新增以下配置
          agent: new https.Agent({
            rejectUnauthorized: false
          }),
          headers: {
            "Connection": "keep-alive"
          },
        }
      }
    }
    
  • 校验请求路径匹配规则
    确保业务代码中发起的请求前缀为/api,只有匹配该前缀的请求才会触发代理规则,例如需要请求https://localhost:8443/test/list时,业务代码应写为/api/list。
  • 配置Node.js全局TLS校验参数(仅本地开发使用)
    若上述配置仍未生效,修改项目启动命令,临时关闭Node.js全局TLS证书校验:
    • Mac/Linux系统:
      NODE_TLS_REJECT_UNAUTHORIZED=0 npm run start
      
    • Windows CMD:
      set NODE_TLS_REJECT_UNAUTHORIZED=0 && npm run start
      
    • Windows PowerShell:
      $env:NODE_TLS_REJECT_UNAUTHORIZED=0; npm run start
      
  • 降级依赖版本
    若问题依然存在,可将http-proxy-middleware降级到v1.x适配老配置规则:
    npm install http-proxy-middleware@1.3.1 --save-dev
    

内容的提问来源于stack exchange,提问作者BilalMr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:54:06