您好,反应路由器参数会自动解码字符串吗?
例如我有这条路线
<Route path="/callback/:url"/>
当我用它来称呼它时C5jb20%3D
它会打印C5jb20=
当我 console.log() 参数
这是预期的行为吗?我可以更改此行为以便仍然获得编码的字符串吗?
Thanks!
C5jb20%3D
是 URL 编码字符串,这是对 URL 中的特殊字符进行编码的一种方法。例如,如果您有一个类似的 URL 参数?redirect=/some/path
,服务器可能会将正斜杠解释为路由路径,并扰乱预期的路由。这就是为什么你会看到类似的东西?redirect=%2Fsome%2Fpath
,以及您的示例,在 URL 中。
window.location.path
将具有原始的、未编码的 URL。
你也可以通过以下方式取回它encodeURIComponent https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent:
encodeURIComponent('C5jb20=') // "C5jb20%3D"
不过,您可能不想这样做,具体取决于您的用例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)