Добавление заголовка «Авторизация» в Angular - PullRequest
4 голосов
/ 20 июня 2019

Я хочу установить заголовок для каждого запроса.

Я использую request.clone для установки заголовка в Angular 7.2.14

import { HttpInterceptor, HttpEvent, HttpRequest, HttpHandler, HttpResponse, HttpErrorResponse, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

export class AuthInterceptor implements HttpInterceptor {


    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {        
        const token=localStorage.getItem('token');
        console.log(token);
        request.clone({ headers: request.headers.set('Authorization', token) });    
        return next.handle(request)
    }

}


Я не получаю ошибку, но вижуЗаголовок авторизации

Ответы [ 2 ]

4 голосов
/ 20 июня 2019

Вы возвращаете старый запрос, а не клонированный.

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    const token = localStorage.getItem('token');
    request = request.clone({
        setHeaders: {
            Authorization: `Bearer ${token}`
        }
    });

    return next.handle(request);
}
2 голосов
/ 20 июня 2019

request.clone() возвращает объект, не изменяет источник.

попробуйте передать request.clone() в качестве параметра.

    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {        
        const token=localStorage.getItem('token');
        console.log(token);    
        return next.handle(request.clone({ headers: request.headers.set('Authorization', token) });)
    }
...