jQuery確實是一個挺好的輕量級的JS框架,能幫助我們快速的開發JS應用,并在一定程度上改變了我們寫JavaScript代碼的習慣。
廢話少說,直接進入正題,我們先來分析一下失敗的原因
一、失敗的原因
那是因為response原因,一般請求瀏覽器是會處理服務器輸出的response,例如生成png、文件下載等,然而ajax請求只是個“字符型”的請求,即請求的內容是以文本類型存放的。文件的下載是以二進制形式進行的,雖然可以讀取到返回的response,但只是讀取而已,是無法執行的,說白點就是js無法調用到瀏覽器的下載處理機制和程序。
二、解決方案
1)可以使用jquery創建表單并提交實現文件下載;
var form = $("<form>");form.attr("style","display:none");form.attr("target","");form.attr("method","post");form.attr("action",rootPath + "T_academic_essay/DownloadZipFile.do");var input1 = $("<input>");input1.attr("type","hidden");input1.attr("name","strZipPath");input1.attr("value",strZipPath);$("body").append(form);form.append(input1);form.submit();form.remove();
2)可以直接使用a標簽實現文件下載;
<a href=”下載地址”>點擊下載</a>
3)使用隱藏iframe或新窗體解決。
PS:AJAX請求 $.ajax方法的使用
使用jQuery的$.ajax方法可以更為詳細的控制AJAX請求。它在AJAX請求上施加細粒度級別的控制。
$.ajax方法語法
$.ajax(options) | |
參數 | |
options | (對象)一個對象的實例,其屬性定義這個操作的參數。詳情見下表。 |
返回值 | XHR實例 |
新聞熱點
疑難解答
圖片精選