springboot 后端接口在接受json数据时 如果URL中有传输特殊字符,有大括号时正常,(在出现 "[]"中括号时报错)页面会报400。
原因是:{ Tomcat的高版本(具体从哪个版本开始没有具体了解)中增加了一个新特性,就是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范规定Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ]) }
在网上找到的最简单的解决办法:
@Configuration public class WTConfig { @Bean public ServletWebServerFactory webServerFactory() { TomcatServletWebServerFactory fa = new TomcatServletWebServerFactory(); fa.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "[]{}")); return fa; } }
前人的分享,也给自己记录一下
原文:https://www.cnblogs.com/Tie-shu/p/13725641.html