为 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 });
}
谢谢!
如果我有一个为每个请求添加 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 });
}
谢谢!