反应路由参数自动解码字符串

时间:2017-01-12 20:14:38

标签: reactjs react-router

嗨确实反应路由器params自动解码字符串?

例如我有这条路线

<Route path="/callback/:url"/>

当我用C5jb20%3D

打电话时

当我在console.log()那个参数

时会打印C5jb20=

这是预期的行为吗?我可以更改此行为,以便仍然获得编码的字符串吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

C5jb20%3D是一个URL编码字符串,它是一种对URL中的特殊字符进行编码的方法。例如,如果您有一个类似?redirect=/some/path的URL参数,则服务器可以将正斜杠解释为路由路径,并弄乱预期的路由。这就是为什么您在网址中看到?redirect=%2Fsome%2Fpath和您的示例等内容。

window.location.path将包含原始的未编码网址。

你也可以使用encodeURIComponent

取回它
encodeURIComponent('C5jb20=') // "C5jb20%3D"

但是,您可能不希望这取决于您的用例。