【问题标题】:EXTJS 4.2 - download PDF via REST APIEXTJS 4.2 - 通过 REST API 下载 PDF
【发布时间】:2014-12-24 19:12:43
【问题描述】:

我是 EXTJS4.2 和 Web 开发的新手,正在学习,但需要对我感到困惑的领域有所了解。

我的 AJAX 代码正在通过 JSON 输入参数调用 POST REST API,该参数将下载 PDF 文件。

在我的研究中,一些用户表示无法使用 AJAX 下载 PDF,其他帖子建议使用 AJAX 和提交表单参数通过 IFRAME 下载 PDF,

所以,我有点困惑,因为我不明白我需要做什么,我尝试了一些没有运气的事情。

有人可以提供一些背景知识,说明什么是可能的,什么不是,以及我如何实际实现这一点,我可以不将 responseText 写入文件吗?

我希望使用一种适用于所有浏览器的解决方案,因此让 EXTJS 来完成。

不确定这有多大帮助,但这就是响应内容类型的样子

Transfer-Encoding: chunked 
Content-Type: application/pdf;charset=utf-8
Content-Disposition: attachment;filename=1428140714.pdf

【问题讨论】:

    标签: javascript ajax pdf extjs


    【解决方案1】:

    虽然您可以通过 Ajax 下载文件,但无法触发浏览器保存对话框,因此下载的文件只会留在内存中。

    幸运的是,解决方案很简单:您发布来自客户端的请求,其中 target 是隐藏的 iframe。出现浏览器保存对话框,用户可以选择保存位置并保存文件。之后您可以删除 iframe。

    你可以在这里看到它的实际效果:http://extjs.eu/ext-examples/#downloading-file

    【讨论】:

    • 嗨,Saki,感谢您的回复,非常感谢。我检查了你的例子,真的很抱歉,但我还是有点困惑。我拥有的 REST API 仅支持带有 application/json 标头的 JSON 参数。我玩过它但无法让它工作,我是否使用 AJAX 请求,我对目标部分如何适应它有点困惑,目标是否进入成功处理程序?
    • 您不能通过 Ajax 下载文件,因此您可以忘记 REST、JSON 和代理。因此,您需要表单(要提交的内容、生成请求)和 iframe 作为目标 - 以防止导航出站点。
    猜你喜欢
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多