angular - 如何使用带有 routeLink 的拦截器返回状态 url 并保留/预填充表单数据?
问题描述
使用HttpInterceptor
并出现403
错误时,我刷新令牌并导航回之前的状态/路由器。直到那时,这个概念都很好。
问题是当(以前的)url-state 是带有表单字段的页面/组件时。当拦截器检测到 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);
})
);
}
解决方案
推荐阅读
- android - 在列表视图中更改所选项目的文本颜色(Kotlin,Android)
- flutter - Flutter避免重新打开抽屉页面
- linux - 如何在运行时使用 python 传递存储桶和本地文件夹值时将所有文件从 s3 存储桶下载到本地 linux 服务器
- google-sheets - 如何获得对将动态更新的单元格范围的静态引用?
- wpf - 我需要使用存储在 .resx 文件中的预翻译单词,按下按钮更新应用程序以提供法语版本
- c# - 为什么在保存视图页面并刷新浏览器后调试站点时出现 500 内部服务器错误?
- c# - 带有 TX 的实时 ETW
- xcode - 模块未编译用于测试 @testable 导入错误
- sas - 如何计算每年的观测值
- python - 有没有办法在单个函数中自动向多个 raw_input()/input() 提供多个输入字符串