原因
ajax的返回值類型是json,text,html,xml類型,或者可以說ajax的接收類型只能是string字符串,不是流類型,所以無法實現文件下載。但用ajax仍然可以獲得文件的內容,該文件將被保留在內存中,無法將文件保存到磁盤。這是因爲JavaScript無法和磁盤進行交互,否則這會是一個嚴重的安全問題,js無法調用到瀏覽器的下載處理機制和程序,會被瀏覽器阻塞。
實現下載的方法
- 隱藏表單,用提交表單的形式
- 用window.open() 或 window.location.href()
- 創建iframe,iframe的src可以是文件地址url來直接下載文件
下載時注意要設置contentType,content-disposition
response. setHeader(“content-disposition”, “attachment; filename=123.doc”);
response.setContentType("application/msword");
參考:http://langgufu.iteye.com/blog/2076373