React Router不对&符号进行编码,但对路径参数中的空格进行编码

时间:2019-07-09 19:46:40

标签: javascript reactjs react-router react-router-v4

我对React Router编码空间有问题,但&符没有问题。因此,localhost:8080/you & me被编码为localhost:8080/you%20&%20me而不是localhost:8080/you%20%26%20me,而我正在使用一种怪异的技巧来解码然后重新编码所有内容。我想知道是否有人可以推荐更好的解决方案。

1 个答案:

答案 0 :(得分:3)

请勿在URL中使用非字母数字字符。诸如&/?=之类的某些字符在URL中具有特殊含义。正如您所注意到的那样,即使在URL中使用react-router创建路由组件时,&不会引发错误,但最终还是会出现一些奇怪的行为。最佳做法是避免出现异常情况。您可以在网址here中阅读有关允许的字符的更多信息。

作为解决方法,您可以使用localhost:8080/you-and-me获得几乎相同的URL。这是一个安全的网址,没有空格和特殊字符。它也是人类可读的,任何带有空格的东西都不容易被编码后读取。