使用Tomcat8部署项目时,有接口会报400错误,后端提示在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
原因
在日志显示的请求地址中包含非法字符,出现400错误
tomcat高版本严格按照RFC 3986规范解析地址。该规范只允许包含 a-zA-Z 0-9 - _ . ~ 以及所有保留字符 ! * ’ ( ) ; : @ & = + $ , / ? # [ ]
解决
配置config\server.xml
relaxedPathChars="|{}[],%" relaxedQueryChars="|{}[],%"