URL GET +号后台接收成空格

问题:参数spdm=whbs+001 其中包含URL特殊符号

如果用GET请求方式不做任何不处理那么浏览器自动将+转为%20

请求链接为  details?spdm=whbs%20001&limitKcysType=1

后台接收到的参数为 whbs 001 ,自动将+号转成空格了。

尝试解决(失败):

前端URLENCODE 然后后台解密

params: {
	spdm: encodeURIComponent(this.spdm),
				
},

请求链接为details?spdm=whbs%2520001&limitKcysType=1

后台解密接收  

  String spdm=URLDecoder.decode(term.getSpdm(), "UTF-8");

结果得到的仍然是 whbs 001     

尝试解决(成功):

        前端替换 :

let dm=spdm.replaceAll(/\+/g,'%2B');

        后端解密接收:

  String spdm=URLDecoder.decode(term.getSpdm(), "UTF-8");
得到结果: 

更多解决方式:

1、details/{spdm}   

2、改用POST

24/04/26 更正一个问题

有的安卓不支持  repalceAll   一些低版本的浏览器JS不支持ES6,兼容性不好。

用replace替换兼容性比较好

let dm=spdm.replace(/\+/g,'%2B');

你可能感兴趣的:(java,vue)