ReactJS中URL路径字符被视为不安全编码的问题排查
React路由跳转匹配失败问题分析
你遇到的问题核心是字符编码不匹配,具体原因如下:
- 路由配置里的路径是
/person/profile,最后一个字母是英文小写e(Unicode编码U+0065); - 但你
<Link>里写的是/person/profilе,最后一个"e"其实是西里尔字母е(Unicode编码U+0435)——这俩字符视觉上几乎一样,但属于完全不同的字符集; - 浏览器处理这个特殊字符时,会将其URL编码为
%D0%B5,最终请求的路径变成/person/profil%D0%B5,自然和配置的/person/profile无法匹配,触发路由找不到的错误。
你误以为“字母e被视为不安全”是个误解,真正的问题是那个看起来像e的西里尔字母不属于标准ASCII字符,会被URL编码,导致路径和路由配置不一致。
解决方法:把<Link>里的profilе替换成标准英文拼写的profile,确保最后一个字母是英文e即可正常匹配。
内容的提问来源于stack exchange,提问作者japheth
相关产品推荐
相关产品推荐

