1
jfcherng 2018 年 4 月 11 日 "#" 在 URI 裡表示 fragment,在此之後的字符並不會從瀏覽器送到 server 端。
而 "%" 本身在 URI 裡也有特殊意義,用於編碼非 ASCII 的字符。 |
2
tianxiacangshen OP @jfcherng 请问高手 如何解决这个问题?
|
3
icy37785 2018 年 4 月 11 日
解决方法是用户名不允许注册特殊字符呀。很多特殊字符都得编码后才能通过 get 传参,而编码这件事把,还得浏览器配合,坑挺多的,而正常情况下,没有编码的特殊字符都被掐了,你参数都没传过去,路由都是根据收到的参数来匹配正则的,参数就没有那段,当然是不行的。
|
4
chairuosen 2018 年 4 月 11 日
url 里从来都是只拼 id 的,连拼英文名的都少。
|
5
akira 2018 年 4 月 11 日
用户名作为 post 参数上来,不要走 url
|
6
azoon 2018 年 4 月 11 日
URL 改用 ID,话说用户名就不应该出现这些字符
|
7
baiyi 2018 年 4 月 11 日 via Android
urlencode ?
|
8
xiaoyang7545 2018 年 4 月 11 日
直接禁止特殊字符的注册。他要是用 /你的路由也会有问题。
坑很多。 |
9
msg7086 2018 年 4 月 12 日
我就想说你数据往 URL 里填的时候竟然不编码?
|
10
msg7086 2018 年 4 月 12 日
如果有个人的名字叫 a#b%,那你的 URL 看起来应该是这样的:
/username-a%23b%25 如果不是…… |
11
tianxiacangshen OP @msg7086 编码也是一样的,路由也无法匹配到 %
|
12
moonsola 2018 年 4 月 12 日
如果必须用 get 传递用户名的话,先 base64 编码吧
|