直接貼代碼吧
$("#btn-export").click(function(){ var exportExcel = "export_excel"; dataParams[exportExcel] = 1; var params = $.param(dataParams); var url = host+"&"+params; $('<form method="post" action="' + url + '"></form>').appendTo('body').submit().remove(); delete dataParams[exportExcel]; });
簡單說明一下:
使用情形:ajax請求服務端,返回json數據,出現的新需求是要把返回的json導出為excel表格。
上述代碼中,dataParams為ajax的請求參數,是在前面定義的Object類型的對象,因為請求參數不固定,所以將請求參數都放到對象里面了。
我們知道,ajax請求服務器,是不能返回excel表格的(這個我不確定,如果讀者有辦法導出,請帖出辦法,我們共同學習),我們需要把請求轉換為頁面請求,即轉換為form表單發送請求,這樣就可以把數據導出為表格了,也就有了下面的代碼:
$('<form method="post" action="' + url + '"></form>').appendTo('body').submit().remove();
為了保證頁面的干凈整潔,在發送完請求后,將本次提交請求的form表單從頁面中移除。