轉載ajax 請求不能下載檔案
阿新 • • 發佈:2018-12-14
$('#fileexcel').unbind('click').bind('click',function(){
alert("我要下載了");
$.ajax({
type:'post',
url:'media',
data:null,
async:true,
success : function(msg){
alert(msg);
}
})
})
發現不能下載,只能讀取response中的內容
改成
<a href="/media">點選下載Excel</a>
或者
location.href = '/media';
分析下載請求不能放在ajax裡傳送:
原因:因為response原因,一般請求瀏覽器是會處理伺服器輸出的response,例如生成png、檔案下載等,然而ajax請求只是個“字元型”的請求,即請求的內容是以文字型別存放的。檔案的下載是以二進位制形式進行的,雖然可以讀取到返回的response,但只是讀取而已,是無法執行的,說白點就是js無法呼叫到瀏覽器的下載處理機制和程式。