前端传大量数据到后台进行导出

当前端需要将大量数据导出为Excel时,由于GET请求限制,不能使用超链接方式。而AJAX因不支持流式导出,也无法完成此任务。本文提出一种解决方案,利用form表单结合iframe,将数据以JSON字符串形式提交到后台(Java)进行处理。HTML代码创建表单,JS代码将数据转换为字符串,Java代码接收并解析为Map对象,实现数据导出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

各位小伙伴有没有遇到过这种需求,前端有大量的数据需要传到后台,在将这些数据导出成excel。

常用的导出都是前端通过超链接的请求方式,但因为超链接是get请求,无法传大量的数据。如果你想到了用ajax,那么很抱歉,因为ajax不支持流形式的导出,所以是无法导出excel的。

下面写出我的解决方案,通过form表单的形式进行导出。

HTML代码:通过提交表单,将数据传到后台,注意要使用iframe,为了让页面不会有跳动的效果。

<form  action=""  target="formTarget" method="post" id="formsubmit" style="display: none;">
    <input type="hidden" id="test" value="test" name="test">
</form>

<iframe id="formTarget" name="formTarget" frameborder="0" style="display: none;"></iframe>

 

JS代码:

this.test是要传到后台的数据,这里要用JSON.stringify将数据转成字符串的形式。

document.getElementById('formsubmit').action="http://localhost:8080/test";
document.getElementById('test').value=JSON.stringify(this.test);
document.getElementById('formsubmit').submit();

 

Java代码:我这里用了Jackjson,你可以用其他第三方json包,将接收到的字符串转化成Map对象,当然你也

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值