当我收到401错误代码+基本身份验证时,我试图找到一种避免身份验证弹出窗口的方法。
不幸的是,我无法在服务器上进行更改,所以我在实现一个http拦截器 - 重定向到登录页面 - 然后才能获得弹出窗口。
我找到了博文的帮助,但无法使其发挥作用。如果登录错误或正确无关紧要,我最终进入页面:/ loginPage?login = loginITypedIn& password = pwdITypedIn
导出类HttpService {
constructor(private http: Http, private router: Router) { }
get(url: string, options?: RequestOptionsArgs): Observable<Response> {
return this.intercept(this.http.get(url,options));
}
intercept(observable: Observable<Response>): Observable<Response> {
return observable.catch((err, source) => {
if(err.status == 401) {
this.router.navigate(['/loginPage'], { queryParams: {} });
return Observable.empty();
} else {
return Observable.throw(err);
}
});
}
}
在另一项服务中调用它:
return this.http.get(url, { headers: headers, withCredentials: true })
.map((res:Response) => res.json());
我为我的英语道歉,但我完全陷入困境。