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

发布时间:2023年12月21日

业务场景描述:

在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

文章来源:https://blog.csdn.net/kaizi_1992/article/details/135105259
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。