在开发中遇到一个Ajax post 参数过长限制问题,做如下小结:
问题现象:当用Ajax post提交时 data:postParameter, 后台无法获取到,获取方式 request.getParameter("xxx");
调用伪代码:
$.ajax({
type: "post",url: strURL,
async: isAsynchronism,
data: postParameter,
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("t_k", csrf_token);
XMLHttpRequest.setRequestHeader("useajaxprep", "true");
},
success: function (data, textStatus) {
});
问题排查:
1、java web 开发环境使用apache tomcat作为服务器会报一个限制错误(Post too large)
解决方案:即在tomcat 安装目录conf/server.xml中的<Connector>标签处,修改或者增加 maxPostSize 属性值,设置为0,不限制上传大小。
2.程序补丁打到生产测试环境weblogic上也会出现参数过长限制。
解决方案:weblogic管理控制台 修改 server http post max size 为-1 不限制上传大小。
3.网络环境问题,公司网络限制请求包过大被拦截。
解决方案:换成4G网络远程调试可以获取参数,没有究其原因。