2013-03-17 50 views
1

我正在將Intranet與文檔管理系統集成。 DMS有一個SOAP API。我們構建了一個接收REST調用,進行SOAP調用並返回JSON或文檔數據的客戶端。已通過身份驗證的AJAX文件下載

問題是所有AJAX下載解決方案似乎都使​​用iFrame(請參閱John Culniver's filedownload plugin)。

我不能使用它,因爲我需要在標題中提供身份驗證憑據。我能想到的唯一的其他潛在解決方案是使用window.open(如果我可以通過瀏覽器彈出窗口阻止)。

有沒有人有另一個潛在的解決方案,或者如何可以做window.open?

謝謝

+0

@ n1ckolas他不是在談論下載,不能上傳? – ryan 2013-03-17 19:53:28

+0

你使用jQuery或不使用jQuery? – ryan 2013-03-17 19:53:50

+0

確實。對不起這是我的錯。 – n1ckolas 2013-03-17 19:54:30

回答

2

我不認爲有這個問題的客戶端解決方案。 window.open不會讓您設置請求標頭。您需要做一些事情,比如向服務器發送一個cookie或其他值,並添加服務器端代碼,以減輕對請求頭的需求。

見答案:

+0

非常感謝。我想到我可能需要構建一個臨時URL來爲文件提供服務並指向用戶。我會看看他們是否有其他選擇,並在這裏發佈我找到任何。 – 2013-03-17 20:21:20

+2

唉,我們通過下載pdf數據和[創建一個臨時的URL.createObjectURL]來關閉(http://stackoverflow.com/questions/15467747/properly-create-and-serve-pdf-blob-via-html5-file- and-url-apis),但現代瀏覽器並不完全處於我們可以對二進制文件執行此操作的地步......至少這是我在挖掘數小時後發現的。我將不得不臨時提供該文件並在AJAX響應中發送文檔URL。謝謝。 – 2013-03-18 16:03:39

+0

我第二@EricH。目前唯一的方法是創建一個具有唯一隨機URI的臨時文件,通過Ajax請求將其發回,並在第二次鏈接點擊或瀏覽器重定向時下載該文件。新路徑不應該有任何身份驗證 – Majid 2015-10-01 18:55:11

相關問題