1. 程式人生 > >下載請求發送成功,無下載提示,下載失敗

下載請求發送成功,無下載提示,下載失敗

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等。

  記之。

  

下載請求發送成功,無下載提示,下載失敗