ajax servlet怎么接收_为什么AJAX不能请求后端下载pdf和word等文档?

首先呢,ajax是的请求数据类型时json,html等形式,实际上是字符串类型,而不是流类型(二进制编码),所以后台不能响应下载操作,但是ajax可以读取后台返回的数据。

我使用jquery开发的轻量级web项目,但是有个需求是需要下载项目中计算出来的数据,并按一定排版排布生成pdf或者word文档。由于前端的插件下载的pdf布局比较受限,容易产生不清晰,乱码等问题,所以只能后台进行。既然ajax不能响应,我采取的方式是模拟表单点击,发送数据到后台,然后在后台进行排版并下载pdf。代码如下:

8f51c45c202d4564ab156212ff9a343f

html

然后对模拟表单下载的代码进行封装成一个方法,往里面传入URL,还有需要填充进pdf的数据fileValue,代码如下:

b58dd1e6ecdf44528243a062d9d476df

模拟点击方法与点击下载事件

本例是demo,所以使用servlet,进行简单的数据收发。通过如下代码接收数据:

response.setContentType("text/html;charset=utf-8");

String fileName = request.getParameter("fileName");

然后就是后台的工作了,这里可以简单进行说明一下,也可以自己操作,后台实现下载pdf,word需要借助几个jar包:itextpdf-5.5.jar与itext-asian-5.2.0.jar可以下载pdf,另外的两个可以下载word。使用时注意引入问题。

7f5c6be9910344b8bda237be08080fbd

需要的插件

后台需要事先准备一个pdf放入lib或者其他文件夹中,用来做为模板,往里面写入数据;需要封装一个写入数据后在前台生成pdf的方法,同时需要写一个排版数据的方法,由于篇幅有限,这里就不放代码了。效果如下:

4195f522559c4772bcdf7d38b744d170

pdf效果图

这样一点击下载,数据发送到后台,进入到排布的方法写入模板,同时保存的方法读取该模板,前台就出现保存或自动下载pdf文件了,一份高清的pdf就生成了。

原创不易,欢迎大家点赞,可以互相讨论,共同进步,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值