angular 4 —— HttpClient拦截器无错,就是没反应?
- angular是4.3.6的。
- 代码是参考网上的:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个问题就这样关闭吧,反正我也没找到问题。因为我现在去使用vue了!哈哈哈哈