使用Angular 5设置cookie头

问题描述 投票:2回答:1

我目前正在尝试使用以下Cookie设置HTTPInterceptor标头:

@Injectable()
export class TokenInterceptor implements HttpInterceptor {
  constructor(private cookieService: CookieService ) {}

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    request = request.clone({
      setHeaders: {
        'Cookie': 'session=' + this.cookieService.get('session'),
        'withCredentials': 'true',
      }
    });
    return next.handle(request);
  }

}

在尝试设置Cookie时,我收到以下错误:

拒绝设置不安全的标题“Cookie”

我正在向当地的Flask API提出请求。

我试图像HTTPHeaders一样用here手动设置标题,并尝试设置xhr2.prototype._restrictedHeaders.cookie = false;显示here。一切都无济于事。知道如何设置cookie吗?

angular cookies angular5
1个回答
2
投票

所以我找到了我的问题的解决方案,希望这将帮助其他人解决同样的问题。事实证明我设置withCredentials不正确,应设置如下:

@Injectable()
export class TokenInterceptor implements HttpInterceptor {
  constructor(private cookieService: CookieService ) {}

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    request = request.clone({
      withCredentials: true,
    });
    return next.handle(request);
  }

}

当它设置为这样时,angular将自动找到相关的cookie并将其与请求一起发送

© www.soinside.com 2019 - 2024. All rights reserved.