Angular 4削减带有散列的queryParams

问题描述 投票:-1回答:2

我正在一个组件中工作,它会收到带有两个值的queryParam:

示例:http://localhost:4200/start/setup-employee?c=RCS8KR8J&email=test $#[email protected]

问题是,如果我得到queryParams参数“ c”可以,但是参数“ email”只返回“ test $”,因为#切断了参数。知道如何解决吗?我看到我可以把剩下的部分弄成碎片,但这也许是另一个很好的解决方案。谢谢,并提前表示感谢。

angular parameters routing
2个回答
1
投票

这不是Angular的错。这只是我们执行http请求时如何处理url的一种行为,不能在queryParam值中使用某些字符,因为该字符已经具有保留的含义。尝试将#替换为他的哈希值,并在其中分配值,例如:.replace('&', '%26');


1
投票

当在URL中传递特殊的ml字符时,请在传递像这样的值之前使用encodeURIComponent函数

encodeURIComponent("test$#[email protected]");

输出

test%24%23myaddress%40gmail.com

然后做决定然后使用值

decodeURIComponent("test%24%23myaddress%40gmail.com");

输出

test$#[email protected]

这样就不会削减查询参数。这样,您可以随时在查询参数中使用所有特殊字符块来确保安全。

© www.soinside.com 2019 - 2024. All rights reserved.