intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// 此处可以对请求体做一些处理
let token = localStorage.getItem('token')
req = req.clone({ headers: req.headers.set(TOKEN_HEADER_KEY, token) });
// 此处可以对响应体做一些处理
return next.handle(req).pipe(
tap((res: HttpEvent<any>) => {
//过滤掉预检请求
if(res instanceof HttpResponse){
//执行lazyInit方法后,后端暴露的请求头信息就可以通过get方法获取
res.headers.lazyInit()
// 如果响应头中有token,则更新
if(res.headers.get('token')){
localStorage.setItem('token', res.headers.get('token'))
}
}
}, (err: any) => {
if (err instanceof HttpErrorResponse) {
}
}
));
}