web-dev-qa-db-ja.com

Angular 5でCookieヘッダーを設定する

現在、次の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」の設定を拒否しました

ローカルのFlaskAPIにリクエストを送信しています。

here のようにHTTPHeadersを使用してヘッダーを手動で設定しようとしました。また、xhr2.prototype._restrictedHeaders.cookie = false; show here を設定しようとしました。すべて無駄に。クッキーを設定する方法はありますか?

3
Harpal

だから私は私の質問の解決策を見つけました、うまくいけばこれは同じ問題を持つ他の人を助けるでしょう。 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を見つけて、リクエストとともに送信します

1
Harpal