不能用ajax請求下載檔案
原因
ajax的返回值型別是json,text,html,xml型別,或者可以說ajax的接收型別只能是string字串,不是流型別,所以無法實現檔案下載。但用ajax仍然可以獲得檔案的內容,該檔案將被保留在記憶體中,無法將檔案儲存到磁碟。這是因為JavaScript無法和磁碟進行互動,否則這會是一個嚴重的安全問題,js無法呼叫到瀏覽器的下載處理機制和程式,會被瀏覽器阻塞。
實現下載的方法
- 隱藏表單,用提交表單的形式
- 用window.open() 或 window.location.href()
- 建立iframe,iframe的src可以是檔案地址url來直接下載檔案
下載時注意要設定contentType,content-disposition
response.AddHeader(“content-disposition”, “attachment; filename=”);
response.ContentType = “application/octet-stream”;
參考:
http://langgufu.iteye.com/blog/2076373
http://qa.helplib.com/783950
相關文章
- ajax請求下載excel檔案Excel
- ajax 請求某個檔案
- [JS] IE下ajax請求不生效或者請求結果不更新JS
- ajax上傳檔案的請求
- 如何使用post請求下載檔案
- Ajax 下載檔案
- AJAX實現檔案下載----
- 使用jQuery 完成ajax 檔案下載jQuery
- ajax請求
- Android okHttp網路請求之檔案上傳下載AndroidHTTP
- ajax請求 juery
- 網頁請求(Ajax)網頁
- AJAX 非同步請求非同步
- requests如何友好地請求下載大檔案?requests實現分段下載、斷點續傳斷點
- 原生ajax請求&JSONPJSON
- wordpress 處理 ajax 請求
- AJAX 跨源 HTTP 請求HTTP
- jquery ajax 跨域請求jQuery跨域
- 防止ajax請求重發
- ajax請求載入完成之前給出正在載入等提示
- POST發起下載請求
- Qt - http請求下載影片QTHTTP
- 檢視ebs請求檔案
- 封裝ajax、axios請求封裝iOS
- ajax請求servlet返回資料Servlet
- KKB : Jquery實現Ajax請求jQuery
- Ajax請求後臺資料
- 如何傳送請求以及AJAX
- ajax請求如何防止快取快取
- 原生JS封裝AJAX請求JS封裝
- springmvc處理ajax請求SpringMVC
- ajax中POST請求與引數(請求體)設定
- ajax中設定請求頭和自定義請求頭
- 跨域ajax請求,伺服器會收到請求嗎?跨域伺服器
- 原聲ajax與jquery ajax請求的區別jQuery
- javaWeb不生成臨時檔案實現壓縮檔案下載JavaWeb
- 基於jq封裝ajax請求封裝
- springmvc ajax請求以及jsonSpringMVCJSON