Angular拦截器生效时间
来源:7-4 实战认证信息流

starkShang
2019-04-23
我自定义了一个Angular拦截器,用于在请求中增加Authorization头,但是它的行为和我预期的不一致。
我的server和client是两个域名,因此打开了CROS,每个请求会先发出一个OPTIONS
的请求,不知道会不会影响拦截器的行为,这里交代一下。
拦截器的行为如下:
- 对于server端没有保护的api,拦截器工作正常,并且请求中存在Authorization头;
- 对于server端进行保护的api,拦截器无效,在请求头中看不见Authorization头;
请教老师这是怎么回事?
写回答
3回答
-
接灰的电子产品
2019-04-25
你打印一下每种情况下这个 authService.userAvaliable 值
00 -
starkShang
提问者
2019-04-24
import { Injectable } from "@angular/core"; import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from "@angular/common/http"; import { Observable } from "rxjs"; import { MesignAuthService } from "../services/auth.service"; @Injectable() export class MesignAuthInterceptor implements HttpInterceptor { constructor(private authService: MesignAuthService) { } intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { if (this.authService.userAvaliable) { console.log("MesignAuthInterceptorAuthorization"); request = request.clone({ setHeaders: { Authorization: `${this.authService.user.token_type} ${this.authService.user.access_token}` } }); } return next.handle(request); } }
如果是访问未被保护的资源,则会携带token:
如果是访问被保护资源,则没有携带token:
00 -
接灰的电子产品
2019-04-24
不会影响的,代码贴出来看一下
012019-04-24
Angular打造企业级协作平台,让你在Angular领域中出类拔萃
全网首个介绍官方 Material 组件库用法与 Redux 在 Angular 中的应用
998 学习 · 536 问题
相似问题