【问题标题】:Angular return URL is wrong角度返回 URL 错误
【发布时间】:2018-11-22 23:00:46
【问题描述】:

在我的 Angular 5 应用程序中,我正在做类似的事情

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

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

问题是http://localhost:4200/schedule?selectedDate=2018-01-29在访问这个路由的时候,返回的url变成了:

http://localhost:4200/login?returnUrl=%2Fschedule%3FselectedDate%3D2018-01-29 并在成功登录后,应用程序尝试转到http://localhost:4200/%2Fschedule%3FselectedDate%3D2018-01-29 URL,但由于无法识别路径而引发 404 错误。

知道如何阻止 Angular 将我的网址更改为这种格式吗?我假设它会选择正确的 URL。

【问题讨论】:

  • 在下面查看我修改后的答案:)

标签: javascript angular angular5 angular-routing url-parsing


【解决方案1】:

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

this.router.navigate(this.returnUrl) 

我用过

this.router.navigateByUrl(this.returnUrl);

【讨论】:

  • 不认为这会是问题,因为应用程序中的所有导航都是以第一种方式完成的。
【解决方案2】:

使用这个。

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

【讨论】:

【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    相关资源
    最近更新 更多