2015-12-02 51 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是否存在),然後在文件出現後更改窗口位置。

相關問題