公司项目是前后端分离开发的,在一次偶然情况下测试出GET请求参数中带有特殊字符时后端会报这个错误,其实感觉应该前端传参的时候做校验,但是后台也不是没有责任做这个事儿,研究了下。
解决方式如下:
在springboot的启动类中将允许传输的特殊字符添加进来:
@Bean
public ConfigurableServletWebServerFactory webServerFactory() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "|{}[]\\"));
return factory;
}