使用Angular 5设置cookie头

时间:2018-04-23 16:44:00

标签: angular cookies angular5

我目前正在尝试使用以下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 xhr2.prototype._restrictedHeaders.cookie = false;手动设置标头,并尝试将-t设为here。一切都无济于事。知道如何设置cookie吗?

1 个答案:

答案 0 :(得分: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并将其与请求一起发送