最下位レベルでは、要求を受け取り、認証ヘッダーを添付してサーバーを呼び出すAuthHttpService
というサービスがあります。
各コンポーネントは、独自のデータサービスを持っているので、私はStudentComponentを持っていたならば、それは角2の401のカスタムAuth HTTPサービスでリダイレクトする方法
getStudents(): Observable<Student[]> {
return this._authHttpService.get('/Students')
.map((response: Response) => <Student[]> response.json());
}
を呼ぶだろうStudentServiceが、そうコンポーネントで、Iは、(例えば)
this._studentService.getStudents().subscribe(data => { this.students = data});
を呼ぶだろうだろう
これはすごくうまく機能し、数ヶ月間続いています。 **しかし、今日は401の状態でグローバルリダイレクトを実装しようとしています**
AuthHttpService
でこれを実装するにはどうすればよいですか? AuthHttpServiceで
は、私が
this.http.get(environment.apiUrl + '' + url, {headers: this.headers}).subscribe(r => {
if (r.status !== 401) {
return r;
} else {
this._router.navigateByUrl(loginUrl)
}
});
でreturn this.http.get(url, {headers: this.headers})
を交換しようとしたが、私はもはや、観察を返すてるので、今コンポーネントサービスで.map
は、障害が発生していないが、代わりに、私は実際の応答を返しますよ。