2014-10-29 36 views
1

我是EXTJS4.2和Web开发,学习的新手,但需要深入了解一个令我困惑的领域。EXTJS 4.2 - 通过REST API下载PDF

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

在我的研究中,也有一些用户表示,这是不可能使用AJAX下载PDF,其他职位使用AJAX与提交表单PARAMS下载通过IFRAME的PDF,

因此建议,我是一个有点困惑,因为我不明白我需要做什么,我已经尝试了一些没有运气的事情。

有人可以提供一些背景知道什么是可能的,什么不是,我如何实际实现这一目标,我可以不写入responseText文件?

我正在寻找使用适用于所有浏览器的解决方案,因此请让EXTJS完成解决方案。

不知道多少,这会有所帮助,但这是响应内容类型的样子

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

回答

3

虽然你可以下载通过Ajax的文件,有没有办法如何触发浏览器保存对话框,因此下载的文件只会保留在内存中。

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

你可以看到它在这里的行动:http://extjs.eu/ext-examples/#downloading-file

+0

嗨萨基,谢谢你的回答,我很感激。我检查了你的例子,真的很抱歉,但我仍然有点困惑。 REST API我只支持带有application/json头的JSON参数。我玩弄了它,但无法让它工作,我使用AJAX请求,我对目标部分如何适应这个问题有些困惑,目标是否进入成功处理程序? – user2574678 2014-10-30 08:41:22

+0

你不能通过Ajax下载文件,所以你可以忘记REST,JSON和代理。因此,您需要表单(要提交的内容,生成请求)和iframe作为目标 - 以防止导出网站。 – Saki 2014-10-31 09:53:08

+0

明白了...谢谢... – user2574678 2014-11-01 23:13:12