angular 4 —— HttpClient拦截器无错,就是没反应?

发布于 2022-09-11 19:18:31 字数 1694 浏览 16 评论 0

  1. angular是4.3.6的。
  2. 代码是参考网上的:

InterceptorService

// http 请求拦截器
import {Injectable, Pipe} from '@angular/core';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse} from '@angular/common/http';
import {Observable} from 'rxjs/Observable';
import {ErrorObservable} from 'rxjs/observable/ErrorObservable';
import {LocalStorageService} from './local-storage.service';
import {mergeMap} from 'rxjs/operator/mergeMap';

@Injectable()
export class InterceptorService implements HttpInterceptor {

  constructor(private storage: LocalStorageService) {
  }

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    // 排除不需要进行token验证的接口
    const excludeUrl = ['login', 'unregistration'];  // 登入和登出不需要token验证
    let isNotVerifyToken = false;  // 排除状态
    excludeUrl.map(item => {
      if (request.url.indexOf(item) > -1) {
        isNotVerifyToken = true;
      }
    });

    if (!isNotVerifyToken) {
      // 此处获取localstorage的Token
      if (this.storage.getToken()) {
        const promise = this.storage.getToken();

        const authReq = request.clone({
          headers: request.headers.set('Authorization', 'token:' + promise)
        });

        return next.handle(authReq);

      }
    } else {
    }
  }
}

app.module.ts

import {HTTP_INTERCEPTORS, HttpClientModule, HttpClient} from '@angular/common/http';

@NgModule({
imports: [
    HttpModule,
    HttpClientModule,
  ],
providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: InterceptorService,
      multi: true
    }
]
})

没报错,就是不运行,不知道咋回事...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

檐上三寸雪 2022-09-18 19:18:31

这个问题就这样关闭吧,反正我也没找到问题。因为我现在去使用vue了!哈哈哈哈

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文