爲何通常請求能夠下載文件,Ajax 請求就不能下載

那是由於response緣由,html

通常請求瀏覽器是會處理服務器輸出的 response,web

例如生成png,文件下載等,ajax

ajax請求只是個「字符性」的請求,能夠讀取到返回的response,但只是讀取而已,是沒法執行的,說白點就是js沒法調用到瀏覽器的下載處理機制和程序。json

 

 

JQuery的ajax函數的返回類型只有xml、text、json、html等類型,沒有「流」類型,因此咱們要實現ajax下載,不可以使用相應的ajax函數進行文件下載。但能夠用js生成一個form,用這個form提交參數,並返回「流」類型的數據。在實現過程當中,頁面也沒有進行刷新。瀏覽器

var form=$("<form>");//定義一個form表單
form.attr("style","display:none");
form.attr("target","");
form.attr("method","post");
form.attr("action","exportData");
var input1=$("<input>");
input1.attr("type","hidden");
input1.attr("name","exportData");
input1.attr("value",(new Date()).getMilliseconds());
$("body").append(form);//將表單放置在web中
form.append(input1);服務器

form.submit();//表單提交app

相關文章
相關標籤/搜索