我目前正在尝试使用以下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吗?
所以我找到了我的问题的解决方案,希望这将帮助其他人解决同样的问题。事实证明我设置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并将其与请求一起发送