jquery实现下载文件?
通过jquery异步,后台将datatable数据写进excel,然后生成excel文件保存到服务器,然后返回文件名到前台,提示是否下载文件即可,参考代码如下:
// Ajax 文件下载
jQuery.download = function (url, data, method) {
// 获取url和data
if (url && data) {
// data 是 string 或者 array/object
data = typeof data == 'string' ? data : jQuery.param(data);
// 把参数组装成 form的 input
var inputs = '';
jQuery.each(data.split('&'), function () {
var pair = this.split('=');
inputs += '';
});
// request发送请求
jQuery('
').appendTo('body').submit().remove();
};
};
jquery为什么要序列化?
用ajax传递表单的数据,如果不进行表单的序列化,要一个参数一个参数的写,太麻烦,序列化的话,一句代码搞定。data:$('form').serialize(),这样一句话解决复杂的表单ajax的post传值过程。
提交时数据是直接以原始格式存储在body中而不是以键值对的方式附加到url中的,所以后台程序是无法直接识别的,这时候就需要在提交前先把data转换为 a=1&b=2&c=3 的格式再提交,这就是序列化。
当然,如果数据是通过表单提交的,那么不管是post方式还是get,浏览器会自动进行序列化,无需前端js再做任何处理。