zoukankan      html  css  js  c++  java
  • angular5.x拦截器 给get post请求添加参数user_token

    export class Interceptor implements HttpInterceptor {
    public myAppListService;
    constructor(private message: NzMessageService, private injector: Injector) {
    }

    public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    this.myAppListService = this.injector.get(MyAppListService);
    this.myAppListService.selectedUserToken = getQueryString('user_token') || sessionStorage.getItem('user_token');
     
    if (this.myAppListService.selectedUserToken !== 'null') {
    let newParams;
    let newBody;
    if (req.method === 'GET') {
    let userToken = this.myAppListService.selectedUserToken;
    if (userToken) {
    newParams = req.params.set('user_token', userToken);
    const comReq = req.clone({
    params: newParams,
    body: newBody
    });
    return next.handle(comReq).do((res) => {
    this.handleResponse(res);
    });
    }
    } else if (req.method === 'POST' && req.headers.get('content-type').indexOf('application/x-www-form-urlencoded;') > -1) {
    // if (req.body.indexOf('user_token=')) {
    let userToken = this.myAppListService.selectedUserToken;
    if (userToken) {
    if (req.body.match(/(^|&)user_token=([^&]*)(&|$)/)) {
    newBody = req.body.replace(req.body.match(/(^|&)user_token=([^&]*)(&|$)/)[0], '');
    newBody = newBody + '&user_token=' + userToken;
    } else {
    newBody = '&user_token=' + userToken;
    }
    const comReq = req.clone({
    params: newParams,
    body: newBody
    });
    return next.handle(comReq).do((res) => {
    this.handleResponse(res);
    });
    }
    // }
    }

    }
    const comReq = req.clone();
    return next.handle(comReq).do((res) => {
    this.handleResponse(res);
    });
    }
    public handleResponse(res) {
    if (res instanceof HttpResponse) {
    const data = res.body;
    if (data.status && data.status === 2) {
    this.message.error(data.data);
    location.href = '/index.php?r=Login/Ulogin';
    }
    if (data.status && data.status === 1 && data.data === '应用不存在,或者您不是应用管理者') {
    location.href = '/index.php?r=Login/Ulogin';
    return;
    }
    }
    }
    }
  • 相关阅读:
    java中获取类加载路径和项目根路径的5种方式分析
    浅谈HTTP中Get与Post的区别
    Http请求工具类 httputil
    Java中遍历数组的三种方式复习
    关于if else 和 三目运算符的效率问题-java
    EXCEL设置三级下拉框
    Java Web前端到后台常用框架介绍
    Shiro学习(总结)
    Shiro学习(24)在线回话管理
    使用jsr303实现数据校验
  • 原文地址:https://www.cnblogs.com/aisiqi-love/p/10151284.html
Copyright © 2011-2022 走看看