TableExport导出失败问题
本周有一个需求,将一个网页上一个js导出成csv文件,供数据分析使用
找到一个插件,TableExport,可以很方便的将table导出(默认设置的话,仅需一行代码)
但是,这导出文件较大(6.2M)时,却发生了奇怪的错误(仅提示网络错误)
此问题出现于Chrome中,但是用Safari却可以正常下载
经查,TableExport是将CSV文件,放到get请求中
如果CSV文件内容过多,则get请求长度过长,无法正确处理
解决方法:使用Java处理数据,生成CSV文件,提供链接下载即可
问题解决了,再看一看问题的原因
从浏览器的下载地址即可看出,TableExport插件是直接将CSV文件作为get请求发送从而下载
get请求的长度在http协议规范中没有规定,规定是服务器(如IIS、Tomcat等)和浏览器(如Safari、Chrome等)自行处理的
常用浏览器长度限制:
IE:2083
Firefox:65536(但实际不少于100000) --括号内不确定,仅为网络查询资料,实际这个6.2M的文件Firefox也无法正常下载,可能与版本有关
Chrome:8182
Safari:80000
Opera:190000
常用服务器长度限制:
Apache:8192
IIS:16384(IIS7中可以修改)
Nginx:可通过配置修改