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

Angular 4中GET请求的Header与Body设置求助

解决Angular HTTP请求中设置请求头与请求体的问题

我看你这段代码里有几个关键小问题需要调整,先给你梳理清楚:

  • Angular的HttpHeaders是不可变对象,调用append方法后必须重新赋值给变量,不然你的头信息根本不会生效
  • GET请求的规范里通常不携带请求体,绝大多数后端也不会处理GET请求的body参数;如果一定要用请求体传递数据,建议改用POST请求;如果坚持用GET,更合规的方式是把参数放到URL的查询参数里
  • 你调用this.http.get()时的语法有误,get方法的第二个参数是配置对象,不能直接把body作为第三个参数传进去

下面给你两种符合规范的实现方案:

方案1:使用GET请求,参数放到查询参数中

如果后端期望用GET方式接收这些参数,把auth_token、page_no等参数放到查询参数里是更标准的做法:

// 正确创建请求头:HttpHeaders不可变,append后必须重新赋值
const headers = new HttpHeaders()
  .append('X-API-KEY', '你的API密钥')
  .append('Accept', 'application/json');

// 准备查询参数
const params = new HttpParams()
  .set('auth_token', '你的auth-token值')
  .set('type', 'matrix')
  .set('page_no', '1')
  .set('page_size', '20')
  .set('keyword', 'j');

// 发起GET请求
return this.http.get('你的请求URL', { headers, params })
  .pipe(
    map((response: any) => {
      // 处理响应数据
      const resp = response;
      // ...你的后续业务逻辑
      return resp;
    })
  );

方案2:使用POST请求,参数放到请求体中

如果后端明确要求用请求体传递参数,直接改用POST请求即可:

// 正确创建请求头
const headers = new HttpHeaders()
  .append('X-API-KEY', '你的API密钥')
  .append('Accept', 'application/json');

// 准备请求体
const body = { 
  auth_token: '你的auth-token值', 
  type: 'matrix', 
  page_no: '1', 
  page_size: '20', 
  keyword: 'j' 
};

// 发起POST请求
return this.http.post('你的请求URL', body, { headers })
  .pipe(
    map((response: any) => {
      // 处理响应数据
      const resp = response;
      // ...你的后续业务逻辑
      return resp;
    })
  );

另外补充两个小提醒:

  • 如果你用的是Angular 6及以上版本,map操作符需要放到pipe里使用(旧版本直接链式调用map也能行,但现在官方更推荐用pipe的写法)
  • 记得把代码里的你的API密钥、你的请求URL等占位符替换成实际的业务值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:33:38