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:可通过配置修改

posted @ 2019-02-17 23:20  朋克  阅读(783)  评论(0编辑  收藏  举报