jQuery確實(shí)是一個(gè)挺好的輕量級(jí)的JS框架,能幫助我們快速的開(kāi)發(fā)JS應(yīng)用,并在一定程度上改變了我們寫(xiě)JavaScript代碼的習(xí)慣。
廢話少說(shuō),直接進(jìn)入正題,我們先來(lái)分析一下失敗的原因
一、失敗的原因
那是因?yàn)閞esponse原因,一般請(qǐng)求瀏覽器是會(huì)處理服務(wù)器輸出的response,例如生成png、文件下載等,然而ajax請(qǐng)求只是個(gè)“字符型”的請(qǐng)求,即請(qǐng)求的內(nèi)容是以文本類型存放的。文件的下載是以二進(jìn)制形式進(jìn)行的,雖然可以讀取到返回的response,但只是讀取而已,是無(wú)法執(zhí)行的,說(shuō)白點(diǎn)就是js無(wú)法調(diào)用到瀏覽器的下載處理機(jī)制和程序。
二、解決方案
1)可以使用jquery創(chuàng)建表單并提交實(shí)現(xiàn)文件下載;
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標(biāo)簽實(shí)現(xiàn)文件下載;
<a href=”下載地址”>點(diǎn)擊下載</a>
3)使用隱藏iframe或新窗體解決。
PS:AJAX請(qǐng)求 $.ajax方法的使用
使用jQuery的$.ajax方法可以更為詳細(xì)的控制AJAX請(qǐng)求。它在AJAX請(qǐng)求上施加細(xì)粒度級(jí)別的控制。
$.ajax方法語(yǔ)法
$.ajax(options) | |
參數(shù) | |
options | (對(duì)象)一個(gè)對(duì)象的實(shí)例,其屬性定義這個(gè)操作的參數(shù)。詳情見(jiàn)下表。 |
返回值 | XHR實(shí)例 |
新聞熱點(diǎn)
疑難解答
圖片精選