【Javascript下载文件的Post实现】
1 /** 2 *从服务器上下载数据 3 *@param paras Json格式的键值对参数 4 */ 5 downLoadFromServer: function (paras) { 6 //init a new window object 7 var wd = window.open('', 8 'newwindow', 9 'height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no' 10 ) 11 var doc =wd.document;//获取新窗口的document对象 12 doc.write("<html>"); 13 doc.write("<head>"); 14 doc.write("<title>日志文件导出下载</title>"); 15 doc.write("</head>"); 16 doc.write("<body>"); 17 doc.write("<form>"); 18 doc.write("</form>"); 19 doc.write("</body>"); 20 doc.write("</html>"); 21 22 var form = $(doc.forms[0]); //指定form表单 23 form.attr('style', 'display:none'); //在form表单中添加查询参数 24 form.attr('target', ''); 25 form.attr('method', 'post'); 26 form.attr('action', "/OperateLog/DownloadRecords"); 27 28 29 //将参数键值对-转化为表单提交的input参数 30 for (var key in paras) { 31 var input = $(doc.createElement('input'));//在当前window中的document对象中创建子元素,并转化为jq对象 32 input.attr('type', 'hidden'); 33 input.attr('name', key); 34 input.attr('value', paras[key]); 35 form.append(input); //将查询参数控件提交到表单上 36 } 37 //将表单提交过去 38 form.submit(); 39 40 }