直接贴代码吧
$("#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表单从页面中移除。