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