Angular6 + Ng-Zorro项目开发总结(二)

搭建通用类

由于之前用的是Abp框架,框架封装的十分成熟,所以很多时候用起来都是知其然而不知其所以然。比如刚开始还没有意识到每次请求都传了token,因为在http方法的调用中,并没有看到它添加header,知道后面看network才知道每次都传了token,搜了全部的文件,关于token的,只有封装好的settoken方法和gettoken方法,到底是怎么加入header的十分费解,后来,想了想估计是拦截器的作用,找了找abp源码,果然有httpInceptor.js,代码一读,问题自然迎刃而解。

HttpInterceptor(HTTP拦截器)

关于这个东西的概念,官网是有十分清楚的解释的,通俗的来说就是你在每次发起http请求时,最后的都要经过拦截器来加工一次,然后返回的http response也是要先经过拦截器处理加工。
自定义拦截器需要创建一个服务,服务中必须有的方法是intercept方法。

@Injectable()
export class InterceptorService implements HttpInterceptor {
    constructor(
        private message: NzMessageService,
        private sessionService: SessionService) {

    }

    id: string = "";

    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        if (this.id == "" && !req.url.includes('json')) {
            this.id = this.message.loading('请稍后...', { nzDuration: 0 }).messageId;
        }
        let secureReq: HttpRequest<any> = req;
        // const url = `${config.apiUrl}/api/`;   //添加api统一前缀
        let modifiedHeaders = new HttpHeaders();
        let token = document.cookie;
        if (token) {
            modifiedHeaders = req.headers.set('Authorization', `Bearer ${token}`);
        }
        secureReq = req.clone({
            url: req.url,
            headers: modifiedHe
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值