令牌是从第三方服务生成的。
有时,这些标记包括%2F
之类的0Tqn66huZhfX%2Fft7nPnCj1Id
我正在为此服务编写包装并使用弹簧托。
当我将其中带有%2F
的令牌作为@RequestParam
发送到spring控制器时,会将%2F
视为/
字符,
0Tqn66huZhfX%2Fft7nPnCj1Id
变成0Tqn66huZhfX/ft7nPnCj1Id
。
我必须将此令牌发送到另一个服务器,如下所示。
http://example.com/ {token} / {otherVariable}
当spring将%2F
设为/
时,它将破坏url格式。
我该怎么办才能通过%2F
获得令牌值,而无需将其转换为/
?
答案 0 :(得分:0)
浏览器将根据使用的字符集对URL进行编码。我们可以通过使用JS ... etc等来防止。
解决方案: 发送请求之前,请使用以下方式对该网址进行编码:
in JS: use encodeURI(url)
,
此函数编码特殊字符except: , / ? : @ & = + $ #
供解码使用:decodeURI(url)