之前做的项目有一个返回给前端浏览器重定向的地址,每次×tamp=时间戳都变成×tamp=时间戳,突然懵逼了,接着看异常截图,发现是浏览器中显示的都是×tamp=时间戳这种,查询了后台日志发现都是×tamp=时间戳这种,突然想到是不是浏览器转义的问题,一查果然是。
解决办法有:
1:把timestamp=时间戳这个参数放到最前面没有&符号就不好被转义了,但是我的这个项目参数是必须按ASCII码升序排列然后进行签名的,不适合;
2:再有一种方法是把&改为& (记得加分号),把参数中的所有&符号改为& ,这个可以。但考虑到项目一直正常在运行最近并没有版本上线,故放弃修改,保持原样,同时通知前端该问题可以忽略(查询时需要留意一下,但实际不影响使用)。
附:HTML转义字符
为什么要用转义字符串?
HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用。这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号