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
先将异常信息贴出:

该问题是tomcat进行http request解析的时候报的错,网上的解决办法主要是修改Tomcat的server.xml,在<Connector port="8080"protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443" />的配置中增加maxHttpHeaderSize的配置。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxHttpHeaderSize="8192" />
如果调整了maxHttpHeaderSize还是解决不了,这时候需要设置前端页面的数据格式,需要将method 的属性设置为POST
但是这种方法对我的代码并未奏效。
-----------------------------------------------------------------------------------------------------------------
经过分析,发现此问题与请求参数有关。当在浏览器中访问时 URL中带有特殊字符,如花括号冒号时,就会出现这个错误。例如:http://localhost:8080/index.do?{id:123},在有些情况下,即使没有花括号,只要带有"?+参数"就会报此异常
比如本文所遇该问题是在使用Layer.js的弹出窗体功能时出现的问题
(代码中的*代码隐藏的代码,下同)
js代码:
var url = **.getWebRootPath()+ "/imagePair/toMakeRegister?cmdUuid="
+ cmdUuid+ "&projectId="+**.getProjectId(); layer.open({
type : 2,
area : [ '1000px', '480px' ],
fixed : false,
maxmin : true,
skin : 'layui-layer-nobg',
btn : [ '确定', '取消' ],
content : url, yes : function(index, layero) { *****
}
java代码:
@RequestMapping("/toMakeRegister")
public String toMakeRegister(HttpServletRequest request,Model model){
String cmdUuid = request.getParameter("cmdUuid");
String projectId = request.getParameter("projectId");
model.addAttribute("cmdUuid", cmdUuid);
model.addAttribute("projectId" ,projectId);*/
return "modules/data/imagefusionPair";
}
原先的思路是通过后台转接得到子页面的url地址,然后使用layer.js组件实现将该url指向的页面作为子页面弹出。由于在url中有带?的参数,所以出现了本文开头的异常。于是,改变url形式,去掉后面的参数,将其通过其他方式进行父子界面的传参。
因此又引出了另一个问题,如何使用layer.open()的时候进行父子界面传参?
本文解决办法:直接上代码
父js:
var url = *.getWebRootPath()+ "/imagePair/toMakeRegister";
var projectId=*.getProjectId();
var para={
"cmdUuid":cmdUuid,
"projectId":projectId
}; parent.layer.open({
type : 2,
area : [ '1000px', '480px' ],
fixed : false, // 不固定
maxmin : true,
skin : 'layui-layer-nobg', // 没有背景色
btn : [ '确定', '取消' ],
content : url,
success: function(layero, index) {
$(layero).find('iframe'[0].contentWindow.getParentData(para); },
yes : function(index, layero) { ****
}
子页面js: 添加获取父页面数据的方法
function getParentData(para){
cmdUuid=para.cmdUuid;
projectId=para.projectId;
}
关键的是
success: function(layero, index) {
$(layero).find('iframe'[0].contentWindow.getParentData(para);
},
“success”定义的回掉函数是在子页面加载完成之后执行的,
$(layero).find('iframe'[0].contentWindow获取子页面窗体对象,然后直接调用在子页面中定义的getParentData(para)方法;
---------------------------------------------------------------------------------------------------
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的更多相关文章
- Tomcat v7.0 java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
十二月 , :: 下午 org.apache.coyote.http11.AbstractHttp11Processor process 信息: Error parsing HTTP request ...
- 解决springboot项目请求出现非法字符问题 java.lang.IllegalArgumentException:Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
springboot版本: 2.1.5 最近使用springboot搭建了一个App后台服务的项目,开发接口的时候在本机使用postman工具做请求测试,请求返回一直很正常,但是在前端开发使用h5请求 ...
- java.lang.IllegalArgumentException: Invalid character found in the request target. The valid charact
线上环境中部署的 Tomcat 项目,出现部分页面无法打开的情况,但本地环境是好的.经过排查发现,本地 Tomcat版本为 7.0.77,而线上版本为 7.0.88.报错的具体描述为java.lang ...
- IE浏览器连接WebSocket报错:java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
在项目开发中整合了WebSocket,本来没什么问题了,但是偶尔发现用IE浏览器打开web端不能推送消息,因为PC端与服务器建立连接失败了.网上查了很多资料, 又看了看源码,都不对症:又怀疑是Spri ...
- 后台报错java.lang.IllegalArgumentException: Invalid character found in the request target.
报错: Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. java.lang ...
- java.lang.IllegalArgumentException: Invalid character found in the request target.
java.lang.IllegalArgumentException: Invalid character found in the request target. http参数存在特殊字符: 特殊字 ...
- java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
微信小程序前后台使用get方式传参时报错如图.但在微信开发平台和苹果测试都没事,在安卓手机上就报这个错,猜想原因是get传递了汉字的原因. 尝试了下在后台输出从前台获取的参数,但是后台什么也没有获取到 ...
- 信息: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level
四月 , :: 下午 org.apache.coyote.http11.AbstractHttp11Processor process 信息: Error parsing HTTP request h ...
- [Java Web]Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors
手机客户端向服务器提交Http请求时,Tomcat抛出错误: 十二月 31, 2014 2:32:45 下午 org.apache.coyote.http11.AbstractHttp11Proces ...
随机推荐
- DevOps之服务器
唠叨话 关于德语噢屁事的知识点,仅提供专业性的精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. <服务器(Server)> DevOps之服务器划分为三部分:系统.虚拟化.器件. ...
- 由String的构造方法引申出来的java字符编码
在String类的constructors中,有一个constructor是将int数组类型转化为字符串: int[] num = {48,49,50,51,52}; String numStr = ...
- redis基本教程
http://www.runoob.com/redis/redis-tutorial.html
- Noip2016组合数(数论)
题目描述 组合数表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们可以给出计算 ...
- SpringMVC Spring MyBatis整合配置文件
1.spring管理SqlSessionFactory.mapper 1)在classpath下创建mybatis/sqlMapConfig.xml <?xml version="1. ...
- EF6与Mysql疑难问题记录
这几天公司架构调整,新的迭代后端使用了ABP框架与CodeFirst模式,执行过程中遇到了一个非必现很难定位的问题,特此记录. 现象 在程序访问MySql数据库时报了异常 System.Invalid ...
- C++内联函数(03)
在C++中我们通常定义以下函数来求两个整数的最大值: 代码如下: int max(int a, int b){ return a > b ? a : b;} 为这么一个小的操作定义一个函数的好处 ...
- 【20171026早】alert(1) to win - 第六、七、八题
早上7点起床,又写了一篇小说发在了起点网上,有兴趣的可以看看.点击这里 忙完后,继续练习,刚开始发现自己答题的速度有些慢,可能是因为对于html,javascript知识不是很精通,但是话又说回来,谁 ...
- 一次从0到1的java项目实践清单
虽说工作就是简单的事情重复做,但不是所有简单的事你都能有机会做的. 我们平日工作里,大部分时候都是在做修修补补的工作,而这也是非常重要的.做好修补工作,做好优化工作,足够让你升职加薪! 但是如果有机会 ...
- 【Telerik控件学习】-制作3D效果的柱状图(ChartView)
首先,定义柱状图,并设置自定义的DataTemplate <telerik:RadCartesianChart > <telerik:RadCartesianChart.Horizo ...