本文由葡萄城技术团队于 SegmentFault 葡萄城问答子站 原创并首发,关注“葡萄城控件”标签,获取更多开发技巧和经验。
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
我们都知道GET请求是有长度限制的,HTTP协议规范没有对URL长度进行限制,这个限制是浏览器对其进行的限制,不同的浏览器之间限制也会不同。例如:IE下URL长度的限制是2083字符,但在chrome下长度限制却是8182字符。
我们都知道如果请求过长需要用POST方式去发送请求,这里很多人存在一个误区,认为POST方式没有大小限制。这个说法没错,POST本身是没有大小限制,HTTP协议规范也没有进行大小限制,但是通常服务器会在这里做限制以保证服务器的处理能力。例如:在Tomcat下取消POST大小的限制(Tomcat默认2M); 但是有时候序列化的JSON长度会超过2M就会出现请求内容为空的情况。
SpreadJS是纯前端的表格控件,不限制后端的技术平台。随着java用户使用人数的增多,经常会使用服务器端的Excel IO进行导入,导出操作,要知道spreadJS的Excel IO操作是需要将spreadJS页面中的内容序列化成JSON(ssjson)然后传输至后台进行处理。然而很多时候,用户的spread中的内容很多,序列化成JSON往往很长。这时候就可能存在问题。
这个时候我们需要根据实际情况来修改服务器的配置,Tomcat中进行如下修改:打开tomcat目录下的conf目录,打开server.xml 文件,找到<Connector>标签,如果其中存在maxPostSize属性,那么修改属性的值(单位是KB),如果不存在maxPostSize属性,则需手动在标签中添加maxPostSize然后设置该属性的值。例如:
<Connector …… maxPostSize="10240"/>
这样设置后POST请求的最大长度就被设置成了10M,另外如果需要不限制POST请求的最大长度,那么设置maxPostSize="0"即可。
其他服务器如果出现类似情况,可以上网查询相关配置进行设置。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。