【问题标题】:trailing "=" being trimmed in angular2 url在 angular2 url 中修剪尾随“=”
【发布时间】:2017-11-13 15:37:14
【问题描述】:

我在 angular2 项目中遇到问题,我正在生成要通过电子邮件发送给用户的 URL。电子邮件中的 URL 需要包含一个特殊的 ID,该 ID 在路由器中传递为:

{ 路径:somepath/:id }

然后用户点击以下网址:

http://localhost/somepath/{id}

我的问题是 id 可以包含一个尾随的“=”字符,当导航到 url 时会自动修剪掉(因此现在使 ID 不正确)

我尝试在将 id 添加到 url 之前对 id 进行编码:

http://localhost/somepath/XXX%3D

但编码的“=” (%3D) 仍会被修剪掉。

是否有任何原因导致编码的 url 值仍然被修剪掉,有什么方法可以防止这种情况发生吗?

【问题讨论】:

  • 您是否考虑过其他选择?通常,当您需要在 URL 中传递一些令牌时,最好使用 queryParams 并像 http://localhost/somepath?id=... 一样传递它
  • 它应该不会失败,检查这个Plunker,你能更新这个来重现你的问题吗。

标签: javascript angular angular2-routing


【解决方案1】:

好吧,这只是我的一个重大疏忽......

我的实际 id 被包含符号且通常以“=”结尾的随机加密生成器掩盖。然而,我没有注意到的是,有一个“)”也包含在几个案例中,它没有被编码,并导致加载 URL 时删除它之后的所有内容。

最终通过将“)”替换为另一个未编码但在 Angular2 中没有其他功能的符号(在本例中为“*”)来修复它。

【讨论】:

    猜你喜欢
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    相关资源
    最近更新 更多