即使在传递withCredentials: true时也无法在Angular中设置Header Cookie

1 人不认可

我正试图设置一个名为Cookie的头。我使用一个拦截器来做这件事,以便在每个请求中都能完成。

@Injectable
export class HeaderInterceptor implements HttpInterceptor {
  constructor(private: authService: AuthenticationService) {}
  intercept(reg: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
  return from(this.authService.getAuthentication()).pipe(
    switchMap((token) => {
      const headers = req.headers
        .set(TOKEN, "someToken")
        .set("Cookie", "someCookie")
        .append("Content-Type", "application/json")
        .append("Accept", "application/json");
      const requestClone = req.clone({ headers, withCredentials: true });
      return next.handle(requestClone);

发生了什么

我总是得到。

尝试设置禁止的头信息被拒绝。Cookie

那么我可以在这里做什么呢?我还试着在每个请求中直接设置withCredentials: true ,但也没有成功。有什么其他办法吗?

javascript
angular
http
cors
http-headers
Gh05d
Gh05d
发布于 2022-01-24
1 个回答
Siddhant
Siddhant
发布于 2022-01-25
已采纳
0 人赞同

出于安全考虑,有些头信息是禁止以编程方式使用的,以确保用户代理对其保持完全控制。

Cookie 是禁忌头 名称 列表中的禁忌头之一,因此你不能直接从代码中在HTTP请求头中设置它。

来自 文档