下載請求發送成功,無下載提示,下載失敗
阿新 • • 發佈:2018-01-26
ioe 插件 識別 catch print chm 似的 -s pos
最近處理了Excel導出操作是碰到的問題,Excel處理插件用的是POI。
前端通過Ajax請求,發送導出操作之後,在後臺進行進行Debug跟進,都沒有問題,但是就是不會彈出下載提示框。
服務器返回了response之後,客戶端這邊沒有任何反應。
部分下載代碼如下:
if(workbook !=null){ try { String fileName = "Userlog_" + String.valueOf(System.currentTimeMillis()).substring(4, 13) + ".xls"; String headStr= "attachment; filename=\"" + fileName + "\""; response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-Disposition", headStr); OutputStream out = response.getOutputStream(); workbook.write(out); }catch (IOException e) { e.printStackTrace(); }
}
參考了網上的說法,ajax請求的返回值類型為:json、html、text、xml。對於流這種類型,ajax請求無法識別,所以客戶端也一直沒有反應。
是否可以在ajax請求的回調函數success或者error中處理這個response,還是response到達客戶端的時候,ajax無法識別,導致回調函數無法觸發。
後面改用window.location.href="";這種請求可以解決這個問題。類似的還有window.open;window.url等。
記之。
下載請求發送成功,無下載提示,下載失敗