1. 程式人生 > >javaweb實現檔案下載用ajax請求,瀏覽器無響應的問題

javaweb實現檔案下載用ajax請求,瀏覽器無響應的問題

最近做公司專案要實現使用者通過瀏覽器從服務端下載檔案的功能。於是,我寫好了後臺,然後前端用JQuery的ajax()方法傳送請求到後臺,按道理說是沒有問題的,包括相應頭的設定都沒問題,但是點選下載按鈕過後,瀏覽器沒任何反應,也沒有報錯,但是就是沒有按照我想的執行檔案下載的效果。檢查了好久也沒有發現問題,後來在一篇部落格中看到一個高手稍微提了一句:ajax返回的是字元型資料!一語驚醒夢中人。確實我們一開始都知道ajax返回的是字元型資料,而此處我們需要的是返回檔案流到瀏覽器,我們才能下載到檔案。所以在做檔案下載請求的時候我們不能用ajax()方法。應該用表單請求。附上我寫的js請求方式:

$(function(){
 $(".getBrowser").click(function(){
 $(".getBrowserDiv").hide();
 $(".getBrowserDiv").show();
 });
 $(".closeBox").click(function(){
 $(".getBrowserDiv").hide();
 });
 $(".getBrowserDiv").find("p").click(function(){
 var version = $(this).attr("class");
 var url = "/tianbao/zipfile/getBrowser";
 var form = $("<form></form>").attr("action", url).attr("method", "get");
 form.append($("<input></input>").attr("type", "hidden").attr("name", "version").attr("value", version));
         form.appendTo('body').submit().remove();

 });

用隱藏表單請求,action指向後臺介面,把需要的引數放在<input></input>裡面。這樣就可以了。