我正在使用Angular 6作为前端的前端和后端Web应用程序 . 在我的情况下,我需要一个 Headers 授权,我从here和here读取最好使用 HTTP INTERCEPTOR
.
我以代码为例,仅在 app.module.ts
上添加提供程序 .
但我认为我的应用程序没有运行 MyHTTP_INTERCEPTOR CLASS
,因为如果我在控制台上没有出现控制器中出现的某些内容或我的令牌 MyHTTP_INTERCEPTOR CLASS
.
我需要拦截的请求是发布请求 .
你们这样的人有问题吗?什么解决方案?
这是我的拦截器类
import { Injectable } from '@angular/core';
import {
HttpInterceptor,
HttpRequest,
HttpHandler,
HttpEvent
} from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class TokenInterceptorService implements HttpInterceptor {
constructor() {}
intercept(
request: HttpRequest<any>,
next: HttpHandler
): Observable<HttpEvent<any>> {
const jwt = localStorage.getItem('user_token_data');
request = request.clone({
setHeaders: {
Authorization: `Bearer ${jwt}`
}
});
return next.handle(request);
}
}
我提供给app.module.ts
import {
HttpClientModule,
HTTP_INTERCEPTORS
} from '@angular/common/http';
import { TokenInterceptorService } from './services/token-interceptor.service';
@NgModule({
...
imports: [
...,
HttpClientModule,
...,
],
providers: [
...,
{
provide: HTTP_INTERCEPTORS,
useClass: TokenInterceptorService,
multi: true
}
],
})