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

Typescript前端向Node后端传Header数据时后端获值为undefined的问题

问题解决:前端通过Headers传值到Express后端返回undefined

核心问题

你的前端Angular HttpClient的post方法调用存在两个关键错误,导致后端无法获取到Header中的rut值:

  • 参数顺序错误:Angular HttpClient的post方法签名为 post(url: string, body: any, options: HttpOptions),你把headers配置错误地放在了第二个参数(body的位置),正确位置是第三个参数的options对象中。
  • 变量引用错误:headers里的rut值直接写了rut,未正确引用传入的paciente对象的rut属性,应该使用paciente.rut。

修正后的前端代码

export class PacienteService
{
  private myAppUrl: string;
  private myApiUrl: string;

  constructor(private http: HttpClient)
  {
    this.myAppUrl = environments.endpoint;
    this.myApiUrl = 'api/pacientes'
  }

  postPaciente(paciente: Paciente)
  {
    console.log(`${this.myAppUrl}${this.myApiUrl}/`);
    console.log('Rut: ' + paciente.rut);
    // 修正参数顺序,将headers放入options,并正确引用paciente的rut属性
    return this.http.post<any>(
      `${this.myAppUrl}${this.myApiUrl}/`,
      {}, // POST无body需求时传入空对象
      { headers: {'rut': paciente.rut} }
    );
  }
}

额外验证步骤

  1. 打开浏览器开发者工具的Network面板,查看发送的POST请求的Request Headers,确认rut字段已被正确携带。
  2. 确认后端Express未开启严格的Header大小写校验(HTTP Header本身不区分大小写,Express的req.headers会自动统一转成小写,无需额外处理)。

内容的提问来源于stack exchange,提问作者Joaquin Ibañez Lopez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:12:03