zoukankan      html  css  js  c++  java
  • @angular/cli项目构建--interceptor

    JWTInterceptor
    import {Injectable} from '@angular/core';
    import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';
    import {Observable} from 'rxjs/Observable';
    
    @Injectable()
    export class JWTInterceptor implements HttpInterceptor {
    
      constructor() {
      }
      intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        req = req.clone({
          setHeaders: {Authorization: 'Token Token_admin_id'}
        });
        return next.handle(req);
      }
    }
    ResponseInterceptor
    import {Injectable} from '@angular/core';
    import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from '@angular/common/http';
    import {Observable} from 'rxjs/Observable';
    
    @Injectable()
    export class ResponseInterceptor implements HttpInterceptor {
    
      constructor() {
      }
    
      intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    
        return next.handle(req).map(event => {
          if (event instanceof HttpResponse) {
            switch (event.status) {
              case 401:
                // expired jwt go to login
                break;
              case 404:
                // not found
                break;
              case 403:
                // forbidden
                break;
              case 500:
                // service inner error
                break;
              default:
                console.log('data return successfully!');
            }
          }
          return event;
        });
      }
    }

    引入:

    import {HttpClientModule, HTTP_INTERCEPTORS} from '@angular/common/http';
    providers: [
        {provide: HTTP_INTERCEPTORS, useClass: JWTInterceptor, multi: true},
        {provide: HTTP_INTERCEPTORS, useClass: ResponseInterceptor, multi: true}],
  • 相关阅读:
    Promise对象
    iterator和for of 循环
    vue项目基本流程
    BASH_SOURCE 用法
    Java GC CMS 日志分析
    zookeeper 删除snapshot和transaction log的源码解读
    openresty nginx 安装过程记录
    opentesty--luasocket 安装
    为什么要使用SLF4J而不是Log4J
    要过一遍的博客列表
  • 原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/8037683.html
Copyright © 2011-2022 走看看