jQuery ajax加载一个自动下载的页面

时间:2012-02-29 22:11:05

标签: javascript jquery

我有一个生成PDF的页面并自动下载该文件。

我必须向页面提交一些变量才能生成PDF。现在我让它使用像这样$("#expForm").submit();的jQuery提交表单。我提交表单jQuery,因为我必须在提交表单之前应用一些逻辑。

此工作正常,并立即弹出PDF。

问题是我需要出现某种加载图标,因为导出页面加载了大量数据而且我不想让用户感到困惑。

我尝试使用$.post('exp.html', $("#expForm").serialize() ,function(data) {});

执行此操作

导出页面加载但不会弹出PDF。如果我从Firebug的控制台打开链接,则PDF会加载。

有没有人知道如何使用$.post()

自动下载PDF

对此的任何帮助都会很棒。感谢

2 个答案:

答案 0 :(得分:1)

在响应中返回pdf文件的路径,并在成功处理程序中重定向

$.post('exp.html', $("#expForm").serialize() ,function(data) {
location.href='path/to/pdf';
});

答案 1 :(得分:0)

使用$.post()是不可能的,但您可以使用隐藏的iframe并拥有一个将数据提交给iframe的表单。

使用此方法,您可以显示进度条或加载图标,直到服务器响应。然后,您可以在iframe的{​​{1}}事件中隐藏进度条。