Angular return URL 是错误的

Angular return URL is wrong

在我的 Angular 5 应用程序中,我正在

做类似的事情

this.returnUrl = this.route.snapshot.queryParams['returnUrl']

当用户访问路由但未登录时,我正在使用它。他被重定向到登录页面,登录后他应该回到这个 return url。

问题是http://localhost:4200/schedule?selectedDate=2018-01-29访问这条路由时,returnurl变成:

http://localhost:4200/login?returnUrl=%2Fschedule%3FselectedDate%3D2018-01-29 and after the successful login, the application tries to go to the http://localhost:4200/%2Fschedule%3FselectedDate%3D2018-01-29 URL 但这会引发 404 错误,因为它无法识别路径。

知道如何停止 Angular 将我的 url 更改为这种格式吗?我假设它会选择正确的 URL.

我认为您可以像这样简单地添加 url <button class="btn btn-md btn-danger pull-right" routerLink="../../">cancel</button> 或者调用点击事件

使用这个。

this.returnUrl = decodeURIComponent(this.route.snapshot.queryParams['returnUrl']);

我设法以某种方式解决了这个问题,而不是使用

this.router.navigate(this.returnUrl) 

我用了

this.router.navigateByUrl(this.returnUrl);