'/'字符不是来自角度2中的查询字符串

时间:2016-07-12 06:57:21

标签: angular angular2-routing

我正在开发Angular 2应用程序,因为我创建了一个通过查询字符串参数接受加密电子邮件ID的路由。 对于前加密文本是NSDds3455rwlk / Dfd237hhSFSDFD = 然后查询字符串只返回NSDds3455rwlk字符串,但我想要完整的加密字符串。

应用程序组件中的路由配置

@RouteConfig([
 {path: '/reset-password/:un', name: 'ResetPassword', component: ResetPasswordComponent}
])

2 个答案:

答案 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"=".+"})
 */

More details here