遇到一个很奇怪的问题,数据量大导致jquery easyui from无法提交并且 success:function(data) 返回为空,js代码如下:
js引用
<script type="text/javascript" src="source/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="source/js/ui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="source/js/ui/easyui.myvalidator.js"></script>
console.log(content);
$("#formid").form('submit', {
url:"blogArticleInfoAction/add.do",
type: "POST",
data:$('#formid').serialize(),
//dataType: "json",
success:function(data){
console.log(data);
if(data!=''){
var rdata=JSON.parse(data);
if( rdata.msg == '添加成功'){
$.messager.alert('提示信息', '发布成功,请继续努力!', 'info',function showss(){
closedDialog();
});
}else{
$.messager.alert('提示信息', rdata.msg, 'info',function showss(){
return;
});
}
//隐藏右上角关闭按钮
$('.panel-tool-close').hide();
}else{
$.messager.alert('提示信息', '异常', 'info',function showss(){
return;
});
}
}
});
小数据量测试功能一切正常:

大数据量文本测试,就异常:

同样的内容将汉字删除一部分,大约在5000个汉字左右再提交就成功了,如下图:

问题原因:
http get是通过url来传递数据,url不存在上限的问题,http协议也没有对utl长度做出限制,但是浏览器以及web服务器会对url长度做出限制,这个长度大小因浏览器以及服务器的不同而不同,一般在几kb之内。
关于form表达提交数据大小限制,因为平时都没有提交过太大的数据,还真没有注意过这个,一般来说post提交数据是没有大小限制的,但是tomcat默认设置表单提交数据大小上限为2m,数据大于2m,java后台将接收不到数据,解决办法是修改tomcat的server.xml中maxPostSize的值,将其设置为0即为无上限,7.0 以上版本 maxPostSize 设置为 -1
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" URIEncoding ="utf-8" compression="on" compressionMinSize="50" maxPostSize="20971520" noCompressionUserAgents="gozilla,traviata" compressableMimeType="text/html,text/xml,application/json,text/css,text/plain,application/javascript,image/jpg,image/png"/>
源码下载:【易可导航】
文章描述了一个使用jQueryEasyUI的表单在处理大数据量时无法提交并返回空值的问题。问题的原因是服务器(如Tomcat)对POST请求的最大数据量有限制,默认值可能为2M。解决方案是调整服务器配置,增大maxPostSize的值以允许更大的数据提交。
1562

被折叠的 条评论
为什么被折叠?



