From 9c9b8250b973eea72f6970e1ceb46facca9f0a99 Mon Sep 17 00:00:00 2001 From: 沈斌 <bluelazysb@hotmail.com> Date: Tue, 13 Mar 2018 15:18:31 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/develop' into develop --- src/app/core/net/default.interceptor.ts | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/app/core/net/default.interceptor.ts b/src/app/core/net/default.interceptor.ts index 5d7b2e0..33a9917 100644 --- a/src/app/core/net/default.interceptor.ts +++ b/src/app/core/net/default.interceptor.ts @@ -10,6 +10,7 @@ import { NzMessageService } from 'ng-zorro-antd'; import { _HttpClient } from '@delon/theme'; import { environment } from '@env/environment'; +import { LoginService } from '@business/services/http/login.service'; /** * ������HTTP������������������������������ `app.module.ts` @@ -28,7 +29,7 @@ private handleData(event: HttpResponse<any> | HttpErrorResponse): Observable<any> { // ��������������� `throw` ������������������ `_HttpClient` ��� `end()` ������ - this.injector.get(_HttpClient).end(); + // this.injector.get(_HttpClient).end(); // ��������������������������������� switch (event.status) { case 200: @@ -52,12 +53,20 @@ this.goTo(`/${event.status}`); break; } - return of(event); + // ��������������������� httpclient ������������ + if (event instanceof HttpErrorResponse) { + return ErrorObservable.create(event); + } else { + return of(event); + } } intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> { - + if (!req.headers.get('X-Refrsh-Token')) { + const loginService = <LoginService>this.injector.get(LoginService); + loginService.refreshToken(); + } // ��������������������������� let url = req.url; if (!url.startsWith('https://') && !url.startsWith('http://')) { @@ -68,7 +77,7 @@ url: url }); return next.handle(newReq).pipe( - mergeMap((event: any) => { + mergeMap((event: any) => { // ������������������������������������������������������������������������������������������������HTTP������������������200������������������ if (event instanceof HttpResponse && event.status === 200) return this.handleData(event); -- Gitblit v1.8.0