我目前正在尝试使用以下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吗?
答案 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并将其与请求一起发送