URL 编码中断 angular 2 导航

URL Encoding breaking angular 2 navigation

我在 angular 2 中开发了一个网站。 当我在 chrome 中为其提供可选参数时,例如

https://aglplus-ui-demo.azurewebsites.net/home?error_code=10000&transaction_id=1543

这将转换为

https://aglplus-ui-demo.azurewebsites.net/home%3Ferror_code%3D10000%26transaction_id%3D1543

并且无法在 chrome 中找到该页面。但是,当我在隐身模式下粘贴相同的 url 时,它运行完美。我是 angular 的新手,无法找到相同的原因。能否请你指引我正确的方向。

问题发生在我登录系统时。有一个使用 router.navigate() 重定向的验证函数。将其更改为 router.navigateByUrl() 解决了这个问题。但是,我不确定为什么会这样。如果有人可以指导我,我将非常感激。

如果你有一个带有散列参数和查询参数的路径并且你想使用'navigate'方法,你必须使用以下形式:

router.navigate([path], {queryParams: queryParams, fragment: fragment, relativeTo: route});

或者,正如@krishanu-choudhury 的回答,您可以使用

router.navigateByUrl()

方法。