页面菜单,通过get请求一个url后,跳转另外一个页面,+丢失问题

业务场景描述:

在A系统,菜单点击跳B系统这个操作。

A系统菜单是get请求到B系统的一个缓冲页面,然后这个缓冲页面获取到url中的accessToken后,在这个页面中通过post请求后端接口。

问题描述:

当accessToken中包含了+。比如accessToken的值:YU+OHLJ2pyDRbiZWOuo4LQ== 这个时候,在post请求后端,后端接受到的参数,+变空格了。如下图:

解决方案:

当 URL 中的 '+' 被解析为空格后,你可以在前端再次进行编码,将空格转换回 '+',然后再发起 POST 请求。可以使用 JavaScript 中的 encodeURIComponent() 函数来对获取到的 URL 参数进行编码。例如:

var accessToken = encodeURIComponent('YU OHLJ2pyDRbiZWOuo4LQ==');

然后将编码后的 accessToken 作为参数添加到 POST 请求中。这样后端就能正确接收到含有 '+' 的参数了。

如果上面方法不行。可以尝试下面方法:

String originalValue = parameter.replace(" ", "+");

最原始粗暴的方案就是直接replace替换。

方案二:

不建议在get请求的URL中拼接特殊字符。会被转移的。可以使用去掉“-”的uuid作为key.然后再拿着这个key进行换取真正的token

你可能感兴趣的:(kaigejava,凯哥Java,html)