我正在开发Angular 2应用程序,因为我创建了一个通过查询字符串参数接受加密电子邮件ID的路由。 对于前加密文本是NSDds3455rwlk / Dfd237hhSFSDFD = 然后查询字符串只返回NSDds3455rwlk字符串,但我想要完整的加密字符串。
应用程序组件中的路由配置
@RouteConfig([
{path: '/reset-password/:un', name: 'ResetPassword', component: ResetPasswordComponent}
])
答案 0 :(得分:0)
将参数附加到地址栏时,需要对其进行URL编码。否则您可能会得到意外的结果。在您的情况下,文本中的斜杠被解释为路径的一部分。
Javascript具有内置函数,用于编码和解码您可以使用的URI组件。 encodeURIComponent("NSDds3455rwlk/Dfd237hhSFSDFD=")
将返回NSDds3455rwlk%2FDfd237hhSFSDFD%3D
,这是一个可以安全用作路线中参数的字符串。
另一方面,在ResetPasswordComponent
代码中,您应该使用
var un = decodeURIComponent(this.params.get('un'));
因此,您将原始字符串作为参数。
答案 1 :(得分:-2)
借助以下代码修改您的代码
/**
* @Route("/{reset-password}/:un", name="ResetPassword", requirements={"ResetPasswordComponent"=".+"})
*/