• 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;
    }
    }
    }
    }
  • 相关阅读:
    详解JavaScript中的this
    java静态代理与动态代理简单分析
    BZOJ1263 [SCOI2006]整数划分
    BZOJ1258 [CQOI2007]三角形
    BZOJ1237 [SCOI2008]配对
    BZOJ1257 [CQOI2007]余数之和
    BZOJ1103 [POI2007]大都市
    BZOJ1061 [NOI2008]志愿者招募
    BZOJ1050 [HAOI2006]旅行
    BZOJ1055 [HAOI2008]玩具取名
  • 原文地址:https://www.cnblogs.com/aisiqi-love/p/10151284.html
Copyright © 2020-2023  润新知