2017-11-08 21 views
0

エラーは発生していません。有効なトークンを使用してログインコンポーネントからauthToken値を設定することができます。しかし、私はリクエストヘッダにAuthorizationパラメータを追加していません。角度HTTPインターセプタがヘッダーを設定していません

entryComponents: [ 
    ConfirmDialogTargetComponent 
    ], 
    providers: [ 
    AuthInterceptor, 
    { 
     provide: HTTP_INTERCEPTORS, 
     useClass: AuthInterceptor, 
     multi: true  
    } 
    ], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

import { Injectable }            from '@angular/core'; 
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest }  from '@angular/common/http'; 
import { Observable }            from 'rxjs/Observable'; 

@Injectable() 
export class AuthInterceptor { 

    authToken: string = ''; 

    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { 

     const authReq = req.clone({ headers: req.headers.set('Authorization', 'Bearer ' + this.authToken) }); 
     return next.handle(authReq); 
    } 
} 
+0

をあなたはインターセプト法にブレークポイントをデバッグして設定しようとしましたか? HttpModuleではなくHttpClientModuleを使用していますか? –

+0

私はHttpModuleを使用しています - これは正しいですか? –

+0

from app.module {HttpModule} from '@ angular/http'; '@ angular/common/http'から{HTTP_INTERCEPTORS}をインポートします。 –

答えて

0

最初AuthInterceptor削除:

entryComponents: [ 
    ConfirmDialogTargetComponent 
    ], 
    providers: [ 
    { 
     provide: HTTP_INTERCEPTORS, 
     useClass: AuthInterceptor, 
     multi: true  
    } 
    ], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 
+0

と混ぜてみましたが、それは役に立たない。これは、ログインコンポーネントがAuthToken値をAuthInterceptorサービス内に設定できるように、ログインコンポーネントがそれをインポートするためです。プロバイダ配列内のAuthInterceptorの最初のインスタンスを削除すると、ログインコンポーネントのエラーが発生します。 –

関連する問題