如何使用带有routeLink的拦截器返回状态网址并保留/预先填写表单数据?

时间:2019-03-06 14:45:20

标签: angular angular-http-interceptors

使用HttpInterceptor并出现403错误时,我刷新令牌并导航回到上一个状态/路由器。到那时为止,这个概念还行得通。

问题是当(上一个)URL状态是具有表单字段的页面/组件时。当拦截器检测到403错误并返回此url状态时,如何保存表单数据?

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    const router = this.injector.get(Router);

    return next.handle(request)
    .pipe(
        catchError((error: HttpErrorResponse) => {
            if ( error instanceof HttpErrorResponse ) {
                if ( error.status === 403 ) {
                    .....
                    router.navigate([ this.activatedRoute.snapshot['_routerState'].url ]);
                }
            }
            if (error.error instanceof ErrorEvent) {
                ....
            }
            return throwError(errMsg);
        })
    );
}

0 个答案:

没有答案