当$ .post返回数据时,我可以模仿.submit的页面刷新吗?

时间:2015-12-02 15:55:35

标签: jquery ajax

我有一个表单,当提交(通过POST)时,告诉服务器提供PDF。由于.submit会自动刷新包含结果的页面,因此PDF会在浏览器中成功加载。目前正在运作。

但是,我希望在PDF到达后触发回调。异步等待.submit是行不通的,因为就ajax而言,.submit一旦发布就会“完成”;它不关心等待服务器。要使用回调,我需要使用其他东西,比如$ .post。

$ .post不会自动刷新带有结果的页面,虽然我可以让我的回调等待数据到达,但我无法像在浏览器中那样加载PDF。提交。

有没有办法可以模仿或强制.submit样式的页面刷新,在$ .post成功回调中加载从帖子中检索到的数据?

1 个答案:

答案 0 :(得分:0)

jquery $ ajax回调在服务器响应之前不会返回。因此,如果您可以在服务器请求/响应周期中生成pdf文件,则可以返回一个URL,然后使用window.location在成功回调中重新加载页面。

window.location.assign('url returned in success callback data');

如果要异步生成PDF,则在服务器响应后,您可以返回生成pdf的URL。然后,客户端可以进行长轮询(通过ajax标头调用检查URL是否存在),然后在文件出现后更改窗口位置。