Tomcat 8.5 报错:Invalid character found in the request target.

后台Tomcat报错:Invalid character found in the request target.

经查,Tomcat 7以上,是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。而我们的系统在通过地址传参时,在url中传了一段json,传入的参数中有"{"不在RFC3986中的保留字段中,所以会报这个错。

解决办法:

1、有的说要改tomcat配置(不建议)。

2、使用js方法 encodeURIComponent 包装参数,推荐!

var url = "http://localhost:8080/api?code=testcode¶msCondition=" + encodeURIComponent(paramsCondition);

 

你可能感兴趣的:(随手笔记)