Angular +Ionic关于token拦截报错

Angular +Ionic关于token拦截报错

一,报错内容

在这里插入图片描述

二,解决方法

1,判断token情况

 if(token){
    if (urlList.indexOf(url) === -1) {
      console.log(token)
      customerHeaders['Authorization'] = token;
      // customerHeaders['token'] = token;
      //customerHeaders['QZH_TOKEN'] = token;//修改
  }
 }

2,修改路径

在这里插入图片描述
3,全部文件

import { Injectable } from '@angular/core';
import {
  HttpInterceptor,
  HttpHandler,
  HttpRequest,
  HttpResponse,
} from '@angular/common/http';
import * as qs from 'qs';
import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';
import { Router } from '@angular/router';
import { StorageService, RestService } from '../service';
import { environment } from '../../environments/environment';
@Injectable({
  providedIn: 'root'
})
export class SetTokenHeaderInterceptor implements HttpInterceptor {
  constructor(
    private token: StorageService,
    private router: Router,
    private rest: RestService, ) { }
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<any> {
    const token = localStorage.getItem("token")
    // const token = localStorage.getItem("authToken")
    const { body, method, headers, url } = req;
    const customerHeaders = {
      // Authorization: token,
      'Content-Type': headers.get('Content-Type') || 'application/x-www-form-urlencoded',
      // 'Access-Control-Allow-Origin': '*',
      // 'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT',
      // 'Accept': 'application/json',
    };
    const urlList = [
      this.rest.homepageList,//首页
      this.rest.getHotSell,//热销
      this.rest.getProDetail,//详情
      this.rest.getstoreList,
      this.rest.getMarketLable,
      this.rest.getMarketClass,
      this.rest.loginBytoken,
    ];
 if(token){
    if (urlList.indexOf(url) === -1) {
      console.log(token)
      customerHeaders['Authorization'] = token;
      // customerHeaders['token'] = token;
      //customerHeaders['QZH_TOKEN'] = token;//修改
  }
 }
      const reqWithToken = req.clone({
        // url: environment.apiUrl + url,
        setHeaders: customerHeaders,
        body: method.toLocaleLowerCase() === 'post' || !headers.get('Content-Type') ? qs.stringify(body) : body
      });
    return next.handle(reqWithToken)
      .pipe(
        tap(
          (event) => {
            if (event instanceof HttpResponse) {
              const { status } = event.body;
              switch (status) {
                case 400:
                  this.router.navigate(['/login']);
                  // this.navCtrl.navigateRoot('/login');
                  break;
              }
            }
          }
        )
      );
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值