2015-12-02 26 views
1

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

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

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

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

+0

你为什么要用ajax来刷新页面? –

+0

简短的回答,没有。您可以使用文件API获取字节,但无法以PDF格式打开。但你为什么要这样?正常提交需要ajax的问题​​是什么? – Andre

+0

@Andre当PDF加载时,你有办法回调火灾吗?因为这是正常提交​​的问题,就像我在问题中所说的那样。 –

回答

0

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

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

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

相关问题