2014-10-29 37 views
1

我是EXTJS4.2和Web開發,學習的新手,但需要深入瞭解一個令我困惑的領域。EXTJS 4.2 - 通過REST API下載PDF

我的AJAX代碼通過將下載PDF文件的JSON輸入參數調用POST REST API。

在我的研究中,也有一些用戶表示,這是不可能使用AJAX下載PDF,其他職位使用AJAX與提交表單PARAMS下載通過IFRAME的PDF,

因此建議,我是一個有點困惑,因爲我不明白我需要做什麼,我已經嘗試了一些沒有運氣的事情。

有人可以提供一些背景知道什麼是可能的,什麼不是,我如何實際實現這一目標,我可以不寫入responseText文件?

我正在尋找使用適用於所有瀏覽器的解決方案,因此請讓EXTJS完成解決方案。

不知道多少,這會有所幫助,但這是響應內容類型的樣子

Transfer-Encoding: chunked 
Content-Type: application/pdf;charset=utf-8 
Content-Disposition: attachment;filename=1428140714.pdf 

回答

3

雖然你可以下載通過Ajax的文件,有沒有辦法如何觸發瀏覽器保存對話框,因此下載的文件只會保留在內存中。

幸運的是,該解決方案非常簡單:您可以發佈客戶請求,其中target是隱藏的iframe。出現瀏覽器保存對話框,用戶可以選擇要保存的位置並保存文件。之後您可以刪除iframe。

你可以看到它在這裏的行動:http://extjs.eu/ext-examples/#downloading-file

+0

嗨薩基,謝謝你的回答,我很感激。我檢查了你的例子,真的很抱歉,但我仍然有點困惑。 REST API我只支持帶有application/json頭的JSON參數。我玩弄了它,但無法讓它工作,我使用AJAX請求,我對目標部分如何適應這個問題有些困惑,目標是否進入成功處理程序? – user2574678 2014-10-30 08:41:22

+0

你不能通過Ajax下載文件,所以你可以忘記REST,JSON和代理。因此,您需要表單(要提交的內容,生成請求)和iframe作爲目標 - 以防止導出網站。 – Saki 2014-10-31 09:53:08

+0

明白了...謝謝... – user2574678 2014-11-01 23:13:12