2012-11-09 113 views
0
  1. 客戶端(請求通過XMLHttpRequest) - >服務器。
  2. 服務器[構建CSV並將其打印在響應的輸出流上] - >客戶端。

現在第3步應該是 - >客戶端的瀏覽器應該顯示下載對話框(保存,打開和取消)。由於內容類型是來自服務器的純文本,並且未設置內容配置,我們是否可以使用javascript創建文件並提示用戶下載?Ajax/Javascript - 文件下載

我知道這個問題是微不足道的。但沒有其他選擇。我必須這樣做。

更改服務器端腳本將使其成爲一分鐘任務。但我必須在客戶端做到這一點。 XMLHttpRequest對象的responseText屬性將是純文本,我必須顯示文本文件的下載提示。

這可能嗎?

回答

1

不是我所知道的。但是,您可以使用location.href(或者需要POST數據的表單)來請求服務器端文件。使用正確的標題(Content-Disposition: attachment,我認爲還有另一個),您可以下載而不是顯示響應。

編輯:更好的是,使用隱藏的iframe。這樣,你仍然可以在主頁面中看到「加載,請稍候」的內容。

1

理論上它可能是可能的,通過使用數據的URI

<a download = "yourfile.csv" href="data:application/octet-stream;charset=YOURCHARSET;base64,BASE64allthedata">Generate</a> 
+0

爵士實際上在HTML 5在更低的版本中實現,而不是? (我的意思是的下載屬性)。謝謝回覆。 –