1
我想添加一些功能给Http,当用户得到403它删除他的用户信息并重定向到登录。 AuthHttp的例子可以在下面看到。使用服务里面的服务
@Injectable()
export class AuthHttp {
constructor(
private http: Http,
private router: Router,
private authService: AuthService
) { }
get(url: string, options?: RequestOptionsArgs): Observable<any> {
return this.http.get(url, options)
.catch(this.errorHandler);
}
errorHandler(error: any): Observable<any> {
if (error.status === 403) {
console.error('TOKEN EXPIRED!');
this.authService.logout();
let link = ['/login'];
this.router.navigate(link);
}
return Observable.throw(error);
}
}
的问题是,我会收到以下错误:
EXCEPTION: this.authService is undefined
,我不知道怎么去解决,因为我试图用一个服务中的服务。我在下面的提供商内部添加了AuthService
providers: [
...,
AuthService
]
路由器会抛出类似的错误。
我想我在某个地方犯了一个大错误,而不仅仅是一个背景问题。谢谢! –