首次启动Angular应用程序时,即在Web应用程序页面返回到客户端浏览器之前,我想从首先请求该应用程序的HTTP请求中提取一些信息。
具体来说,我想从有角度的应用程序内部访问称为有角度的应用程序的HTTP请求的标头。
在Angular 6中有做吗?
谢谢
答案 0 :(得分:0)
您可以创建一个拦截请求的服务,该服务实现HttpInterceptor接口,可以克隆该请求并推送所需的内容,然后返回。
@Injectable() 导出类RequestInterceptor实现HttpInterceptor {
constructor(private tokenService: TokenService) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent
| HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> {
if(this.tokenService.hasToken()) {
const token = this.tokenService.getToken();
req = req.clone({
setHeaders: {
'x-access-token': token
}
});
}
return next.handle(req);
}
别忘了在模块中声明服务:
提供者:[{提供:HTTP_INTERCEPTORS,useClass:RequestInterceptor,多:true}]