重载页面错误401表示未授权访问,即用户尚未登录或没有权限访问当前页面。在Angular 5中,我们可以通过一些步骤来处理这个错误。
首先,我们需要在应用的身份验证服务中添加一个拦截器。拦截器可以在每个HTTP请求之前进行身份验证检查,并处理未授权的错误。以下是一个示例拦截器的代码:
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
constructor() {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const token = localStorage.getItem('token'); // 从本地存储获取用户令牌
const authReq = req.clone({
headers: req.headers.set('Authorization', `Bearer ${token}`) // 添加身份验证头部
});
return next.handle(authReq).pipe(
catchError(error => {
if (error.status === 401) {
// 处理未授权错误
// 可以重定向到登录页面或显示一个错误提示
}
return throwError(error);
})
);
}
}
接下来,我们需要将拦截器添加到应用的提供者中。打开你的根模块(通常是app.module.ts),并在providers数组中注册拦截器:
import { NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { AuthInterceptor } from './auth.interceptor';
@NgModule({
imports: [HttpClientModule],
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }
]
})
export class AppModule { }
现在,当用户访问需要身份验证的页面时,拦截器将在每个HTTP请求中添加身份验证头部。如果服务器返回401错误,则拦截器将捕获该错误并执行相应的操作,例如重定向到登录页面或显示一个错误提示。
关于Angular 5的更多信息,以及其他相关产品和链接地址,你可以访问腾讯云的官方文档和网站:
领取专属 10元无门槛券
手把手带您无忧上云