首页 > 编程语言 > 详细

springboot内置tomcat版本太高导致前台传数据报 Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986问题

时间:2021-06-27 13:23:35      阅读:14      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

写了一个post请求的controller代码,用postman测试数据时发现老是最后一条数据导致报400错误,如果删掉最后一条数据后台能接收到,但由于少了关键的最后一条数据而导致后面的报错技术分享图片

 

 技术分享图片

 

 网上百度一番,发现是springboot内置的版本太高,而tomcat8.0以上版本遵从RFC规范添加了对Url的特殊字符的限制,url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~四个特殊字符以及保留字符( ! * ’ ( ) ; : @ & = + $ , / ? # [ ] ) (262+10+4+18=84)这84个字符,请求中出现了{}大括号或者[],所以tomcat报错。设置RelaxedQueryChars允许此字符(建议),设置requestTargetAllows选项(Tomcat 8.5中不推荐)。 根据Tomcat文档,下面提供一种方法来设置松弛的QueryChars属性*

正好我测试的最后一条数据里包含了这样的字符,于是想着试试降springboot里的tomcat版本,直到。。。

偶然看到某位网友说的

技术分享图片

 

 曹了!真是一言惊醒梦中人啊    postman里不就有这个东西吗?于是找了一下

技术分享图片

 

 再试试测试数据

技术分享图片

 

 成功!

 

springboot内置tomcat版本太高导致前台传数据报 Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986问题

原文:https://www.cnblogs.com/pengjiaquan/p/14506249.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!