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

  • 作者: 凯哥Java(公众号:凯哥Java)
  • 工作小总结
  • 时间:2023-08-01 20:44
  • 1650人已阅读
简介 业务场景描述:在A系统,菜单点击跳B系统这个操作。A系统菜单是get请求到B系统的一个缓冲页面,然后这个缓冲页面获取到url中的accessToken后,在这个页面中通过post请求后端接口。问题描述:当accessToken中包含了+。比如accessToken的值:YU+OHLJ2pyDRbiZWOuo4LQ==这个时候,在post请求后端,后端接受到的参数,+变空格了。如下图:解决方案:当U

🔔🔔好消息!好消息!🔔🔔

 如果您需要注册ChatGPT,想要升级ChatGPT4。凯哥可以代注册ChatGPT账号代升级ChatGPT4

有需要的朋友👉:微信号 kaigejava2022

业务场景描述:

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

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

问题描述:

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

797fe05f765eb7ba4525a3cf0ba881b9.png

解决方案:

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

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

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

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

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

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

TopTop