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