1. 程式人生 > >轉載ajax 請求不能下載檔案

轉載ajax 請求不能下載檔案

$('#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無法呼叫到瀏覽器的下載處理機制和程式。