小编典典

POST到服务器,接收PDF,使用jQuery交付给用户

ajax

我有一个链接,用户单击该链接即可获取PDF。在jQuery中,我创建了对服务器的POST
ajax调用以获取PDF。PDF附带正确的内容标题等,通常会导致浏览器打开Reader插件,或者允许用户保存PDF。

由于我正在通过ajax调用获取PDF,因此我不确定如何处理在OnSuccess回调中获取的数据。如何将接收到的数据提供给浏览器,并允许它对PDF响应执行默认操作?


阅读 259

收藏
2020-07-26

共1个答案

小编典典

您根本不需要jQuery。只需通过表单正常提交POST,然后在服务器端添加HTTP标头

Content-Disposition: attachment; filename="whatever.pdf"

浏览器将执行其默认操作。

或者,如果您要更小心地报告在PDF生成期间可能发生的任何错误,则可以执行此操作。使用jQuery将参数发布到服务器。在服务器上,生成二进制内容并将其缓存到某处几分钟,可通过您放置在用户会话中的密钥进行访问,然后将“成功”
Ajax响应返回到您的页面(或者,如果有错误,则返回一个“错误”响应)。如果页面返回成功响应,它可以立即执行以下操作:

window.location = "/get/my/pdf";

然后,服务器返回缓存的PDF内容。确保包含如上所述的Content-Disposition标头。

2020-07-26