tomcat进行httprequest解析报错

Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors...java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计、网站制作、遵义网络推广、微信小程序定制开发、遵义网络营销、遵义企业策划、遵义品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供遵义建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

先将异常信息贴出:

tomcat进行http request解析报错

该问题是tomcat进行http request解析的时候报的错,网上的解决办法主要是修改Tomcat的server.xml,在的配置中增加maxHttpHeaderSize的配置。

               connectionTimeout="20000"
               redirectPort="8443" maxHttpHeaderSize="8192" />

如果调整了maxHttpHeaderSize还是解决不了,这时候需要设置前端页面的数据格式,需要将method 的属性设置为POST

但是这种方法对我的代码并未奏效。

-----------------------------------------------------------------------------------------------------------------

经过分析,发现此问题与请求参数有关。当在浏览器中访问时 URL中带有特殊字符,如花括号冒号时,就会出现这个错误。例如:http://localhost:8080/index.do?{id:123},在有些情况下,即使没有花括号,只要带有"?+参数"就会报此异常

比如本文所遇该问题是在使用Layer.js的弹出窗体功能时出现的问题

(代码中的*代码隐藏的代码,下同)

js代码:

+ View Code

java代码:

+ View Code

原先的思路是通过后台转接得到子页面的url地址,然后使用layer.js组件实现将该url指向的页面作为子页面弹出。由于在url中有带?的参数,所以出现了本文开头的异常。于是,改变url形式,去掉后面的参数,将其通过其他方式进行父子界面的传参。

       因此又引出了另一个问题,如何使用layer.open()的时候进行父子界面传参?

  本文解决办法:直接上代码

父js:

+ View Code

子页面js: 添加获取父页面数据的方法

1
2
3
4
function getParentData(para){
    cmdUuid=para.cmdUuid;
    projectId=para.projectId;
}  

关键的是

+ View Code

“success”定义的回掉函数是在子页面加载完成之后执行的,

+ View Code

+ View Code


标题名称:tomcat进行httprequest解析报错
标题网址:http://ybzwz.com/article/jsossc.html