通过 Ajax 处理 PDF 下载:解决方案
当 Ajax 调用尝试下载由操作类生成的 PDF 文件时,它可能会如果无法将流传送到浏览器,则会遇到错误。要解决此问题,需要采用不同的方法。
在提供的操作类中,生成 PDF 文件,并设置其流以使用正确的标头进行下载。然而,Ajax 调用需要以不同的方式处理,以方便传输。
这是一个已成功实现的解决方案:
<code class="javascript">$.ajax({ url: '<URL_TO_FILE>', success: function(data) { var blob=new Blob([data]); var link=document.createElement('a'); link.href=window.URL.createObjectURL(blob); link.download="<FILENAME_TO_SAVE_WITH_EXTENSION>"; link.click(); } });</code>
在此代码中,Ajax 调用检索 PDF 文件流作为数据变量。然后它根据数据创建一个 Blob 对象。将创建一个新的链接元素,并将其 href 设置为 Blob 的 URL。下载属性设置为具有适当扩展名的所需文件名。最后,单击链接即可启动下载过程。
事实证明,这种方法可以有效地将操作类生成的 PDF 文件传递到浏览器进行下载,从而实现服务器和客户端之间的无缝集成。
以上是如何通过Ajax下载Action类生成的PDF?的详细内容。更多信息请关注PHP中文网其他相关文章!