Angular 6 добавление пользовательского заголовка - PullRequest
0 голосов
/ 18 сентября 2018

Привет. Я пытаюсь добавить пользовательский заголовок через http-перехватчик. Ниже приведен мой код

import { Injectable } from '@angular/core';
import {
    HttpEvent, HttpInterceptor, HttpHandler, HttpRequest
} from '@angular/common/http';

import { Observable } from 'rxjs';
import { StorageService } from 'src/app/services/storage-service';
import { HttpHeaders } from '@angular/common/http';

@Injectable()
export class AuthorizationHeaderInterceptor implements HttpInterceptor {
constructor(private storageService:StorageService ){}

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

    let authToken = this.storageService.getAuthorizationToken();        
    const authReq = req.clone({
        headers: req.headers.set('Authorization', authToken)
    });

    return next.handle(authReq);
    }
}

с приведенным выше кодом. Я получаю сообщение "TypeError: Невозможно прочитать свойство" length "из undefined".Однако при следующих изменениях ошибка исчезает, но она не устанавливает заголовок авторизации.

const authReq = req.clone();
authReq.headers.set('authorization',authToken);  

в чем может быть проблема в коде.

Заранее спасибо.

1 Ответ

0 голосов
/ 18 сентября 2018

лично я использую setHeaders, а не заголовки

  //here you add the bearer in every request
  addAuthentication(req: HttpRequest<any>): HttpRequest<any> {
    const headers: any = {};
    const authToken = this.userStore.getToken(); // get the token from a service
    if (authToken) {
      headers['authorization'] = authToken; // add it to the header
      req = req.clone({
        setHeaders: headers
      });
    }
    return req;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...