【问题标题】:ExtJS + Spring: Unable to receive PDF in browser after Ajax callExtJS + Spring:Ajax 调用后无法在浏览器中接收 PDF
【发布时间】:2014-09-29 13:11:50
【问题描述】:

我正在使用 Spring + ExtJS,需要在 UI 屏幕上“导出到”功能。我正在进行 Ajax 调用并将 JSON 格式的数据发送到控制器。在控制器中,我正在做所有事情来使用 iText 生成 PDF,它确实生成了文档。

现在我没有看到生成的 PDF 可以在浏览器中下载/查看。如果我在没有 Ajax 调用的情况下这样做,它就可以工作。不知道有什么不同。

我阅读了一些与此相关的文章,建议在下面使用:

Content-type: application/pdf
Content-Disposition: attachment; filename="FileName.pdf"

但这没有运气。请就此提出建议/如果出错请告诉我。

【问题讨论】:

    标签: ajax spring extjs pdf-generation itext


    【解决方案1】:

    herehere 所述,您可以使用隐藏的 iframe 来执行此操作。 我个人更喜欢隐藏表单发布解决方案,这里有一个例子:

    var formEl = Ext.DomHelper.append(document.body, {
                tag: 'form',
                css : 'display:none;',
                id: 'downloadForm'
            }, true);
    var form = new Ext.form.BasicForm(formEl, {
                url : [your spring controller url],
                method : 'POST',
                fileUpload: true,
                baseParams: [your JSON parameters]|| {}
            });
    form.doAction(new Ext.form.action.StandardSubmit({
                form: form,
                clientValidation: false
            }));
    

    我希望这会有所帮助。

    【讨论】:

    • 在我的项目中不应该使用iFrame,而且,尝试时它不起作用。 :(
    • 您是否尝试先将 PDF 本地存储在服务器上,然后在 ajax 响应中发送该位置信息,然后在 ajax 请求之后获取文件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多