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

Angular 5如何移除HTTP请求中的默认Accept头?

移除Angular 5 POST请求中的默认Accept头

嘿,这问题我之前碰到过!Angular的HttpClient确实会自动给请求加上默认的Accept头,要去掉它其实很简单,只需要显式地把Accept头设置为空字符串就行——因为Angular会优先使用你显式设置的头值,覆盖掉框架自动添加的默认项。

你只需要修改你的jwt()方法,在创建HttpHeaders的时候加上'Accept': ''这一项,修改后的代码如下:

public jwt() {
  let headers = new HttpHeaders({
    'Authorization': 'Bearer ' + currentUser.access_token,
    'x-mol-lang': 'en',
    'Content-Type': 'application/json',
    'Accept': '' // 显式设置为空,覆盖默认的Accept头
  });
  return ({ withCredentials: true, headers: headers, reportProgress: true});
}

为什么这么做有效?因为Angular的HttpHeaders是不可变对象,当你显式定义某个头的时候,会完全替换掉框架自动添加的默认值。这样修改后,再发起POST请求,网络面板里就不会再出现那个默认的Accept: application/json, text/plain, */*头了。

如果这个方法意外没生效,你也可以试试用delete方法移除这个头,注意因为HttpHeaders不可变,所以要重新赋值给变量:

public jwt() {
  let headers = new HttpHeaders({
    'Authorization': 'Bearer ' + currentUser.access_token,
    'x-mol-lang': 'en',
    'Content-Type': 'application/json'
  });
  headers = headers.delete('Accept'); // 删除Accept头
  return ({ withCredentials: true, headers: headers, reportProgress: true});
}

不过第一种直接设置为空的方式更直接可靠,优先推荐这个方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:22:44