HttpHeaders установлен (или применить) перезаписывает заголовки - PullRequest
0 голосов
/ 08 октября 2018

Перенос приложения Angular4 в Angular6 и заметил, что заголовки не применяются:

let headers = new HttpHeaders();
headers.set('email', this.email); // or headers.apply

позже - headers.keys() //=> []

Но если переопределено на каждом set(), это работает:

let headers = new HttpHeaders();
headers = headers.set('email', this.seedrsEmail);

А поскольку начиная с @angular/common/http заголовки являются неизменяемыми, как мне добавлять новые заголовки в Interceptor?

intercept(req: HttpRequest<any>, next: HttpHandler):
  Observable<HttpEvent<any>> {

  req.headers.append('user_token', '1234') // overwrites headers

1 Ответ

0 голосов
/ 08 октября 2018

Единственный способ, который я нашел, - добавить каждый заголовок отдельно.Пожалуйста, не стесняйтесь предложить лучший способ:

intercept(req: HttpRequest<any>, next: HttpHandler):
  Observable<HttpEvent<any>> {

  let newHeaders: HttpHeaders = req.headers;
  newHeaders = newHeaders.set('Content-Type', 'application/json')
  newHeaders = newHeaders.set('user_token', '6547')
  newHeaders = newHeaders.set('Access-Control-Allow-Origin', '*')
  newHeaders = newHeaders.set('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');

  let newReq = req.clone({headers: newHeaders});

  return next.handle(newReq);
...