为 Angular 中的每个请求添加特定的 headers

Add specific headers for each request in Angular

如果我有一个为每个请求添加 headers 的拦截器,但在每个请求中我必须为每个请求添加额外的 headers,我该如何添加那些 headers?

(我省略了 httpClient 和其他的导入)

// any.interceptor.service.ts

intercept(req: HttpRequest<any>, next: HttpHandler) {
  const authToken = this.auth.getAuthorizationToken();
  const authReq = req.clone({
    headers: req.headers.set('Authorization', authToken)
  });
  return next.handle(authReq);
}
// my.service.ts

@Injectable({
provideIn: 'root'
})
export class MyService {
  send(data: AnyInterface) {
    // *******************
    // adding HERE additional specific headers
    // *******************
    this.http.post(URL, data);
  }
}

那你可以试试这个:

send(data: AnyInterface) {
    const headers = new HttpHeaders();
    headers.set('YOUR_HEADER_KEY', 'YOUR_HEADER_VALUE');
    this.http.post(URL, data, { headers });
  }

我终于能够解决这个问题。 Reading this article 我能够理解 HttpHeaders 是不可变的,所以@Emilien 的解决方案只需要修改以下内容:

send(data: AnyInterface) {
  const headers = new HttpHeaders().set('YOUR_HEADER_KEY', 'YOUR_HEADER_VALUE');
  this.http.post(URL, data, { headers });
}

谢谢!