我正在使用Spring + ExtJS,需要导出到' UI屏幕上的功能。我正在进行Ajax调用并将JSON格式的数据发送到控制器。在控制器中我正在做所有的事情来使用iText生成PDF,它确实生成了文档。
现在我没有在浏览器中看到生成的PDF到下载/视图。如果我在没有Ajax调用的情况下这样做,它就可以了。不确定是什么造成了不同。
我阅读了一些相关的文章,建议在下面使用:
Content-type: application/pdf
Content-Disposition: attachment; filename="FileName.pdf"
但是没有运气。请就此提出意见/让我知道如果出错。
答案 0 :(得分:1)
如上所述here和here,您可以使用隐藏的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
}));
我希望这会有所帮助。