采用Post请求的方式提交参数并导出excel

一般情况下,我们都是采用get请求的方式导出excel。例如采用如下方式:

var exportUrl = ‘/xxx;‘;
window.open(exportUrl);

导出excel所需的逻辑参数拼接到url上即可。

但是,如果我们需要提交大量的参数到后台才能导出excel, 亦或者我们提交的参数中有中文,get提交乱码了,那么就可能想使用post提交的方式来导出excel。因为post提交支持更多的参数,从而能解决get提交对url长度的限制问题。

然而,一般的post提交表单,意味着主页面也会一起刷新,体验较差。那么,这里将提供一个仿异步post提交导出excel的实例。

代码如下:

_export = {
        canExport:false,
        post:function(data,exportUrl) {
            _export.canExport = true;
            if ($(‘#exportIframe‘).length > 0) {
                $(‘#exportIframe‘).remove();
            }
            $(‘body‘).append(‘
‘);
            $(‘#exportIframe‘).load(function() {
                if (_export.canExport) {
                    var formData = ‘

‘; for (var name in data) { formData = formData + ‘‘; } formData = formData + ‘‘; formData = formData + ‘

‘;
                    $(this).contents().find(‘body‘).append(formData);
                    $(this).contents().find(‘#submitExportForm‘).click();
                    _export.canExport = false;
                }
            });
        }
}

调用方式:

_export.post(submitData,exportUrl);

注意,这里的submitData是使用jquery构建key:value的form参数对象。传入导出方法后被解析还原成form表单数据。

代码的思路就是,利用隐藏的iframe内嵌模块,在iframe内部post表单提交导出我们想要的数据,页面翻转也仅发生在iframe内部,

我们的主页面并不会发生翻转,从而达到仿异步post导出的效果。

时间: 2024-10-13 07:17:51

采用Post请求的方式提交参数并导出excel的相关文章

Android 通过GET和POST方式提交参数给web应用

如何把数据上传到web应用 应用界面: 视频名称:title 时长:timelength 保存,点击保存按钮提交到web应用中,web应用中开发Manageservlet来接收数据. get方式 服务端: public class ManageServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request,H

node.js 下依赖Express 实现post 4种方式提交参数

上面这个图好有意思啊,哈哈, v8威武啊.... 在2014年的最后一天和大家分享关于node.js 如何提交4种格式的post数据. 上上一篇说到了关于http协议里定义的4种常见数据的post方法 ,详细介绍请点击查看. 分别是这四种: www-form-urlencoded, form-data, application/json, text/xml Express 依赖 bodyParser 对请求的包体进行解析,默认支持:application/json, application/x-

POI导出Excel不弹出保存提示_通过ajax异步请求(post)到后台通过POI导出Excel

实现导出excel的思路是:前端通过ajax的post请求,到后台处理数据,然后把流文件响应到客户端,供客户端下载 文件下载方法如下: public static boolean downloadLocal(HttpServletRequest request,String filePath, String fileName, HttpServletResponse response) throws Exception { // 读到流中 InputStream inStream = new F

网络通信之通过get/post方式提交参数给web应用

* 首先,android想要访问网络,需要在AndroidManifest.xml中添加网络访问权限 1,get:例如这个url,http://i.cnblogs.com/EditPosts.aspx?opt=1 get方式也是拼接成类似这样的请求url,地址栏接参数 获得连接 HttpURLConnection conn=(HttpURLConnection)new URL(url.toString()).openConnection(); conn.setConnectionTimeout(

通过fiddler拦截请求去修改提交参数

1.  篡改支付金额 流程: A. 利用fiddler获取相关url信息 B. 在命令行输入"bpu 需要拦截的url"回车 C. 在app或者web进行相关请求操作,请求会被fiddler拦截,不再继续 D. 修改请求参数,点击run to completion继续向服务器提交请求 E.  查看app或web端的交易记录 原文地址:https://www.cnblogs.com/duwk/p/9441414.html

Android传统HTTP请求get----post方式提交数据(包括乱码问题)

1.模仿登入页面显示(使用传统方式是面向过程的) 使用Apache公司提供的HttpClient  API是面向对象的 (文章底部含有源码的连接,包括了使用async框架) (解决中文乱码的问题.主要是对中文的数据进行URL编码) android手机默认的编码是UTF-8 2.手机截图Demo 3.server截图 代码例如以下: server端的代码: //測试 android设备登入 public class Login extends HttpServlet { public void d

Android传统HTTP请求get----post方式提交数据(包含乱码问题)

1.模仿登入页面显示(使用传统方式是面向过程的) 使用Apache公司提供的HttpClient  API是面向对象的 (解决中文乱码的问题,主要是对中文的数据进行URL编码) android手机默认的编码是UTF-8 2.手机截图Demo 3.服务器截图 代码如下: 服务器端的代码: //测试 android设备登入 public class Login extends HttpServlet { public void doGet(HttpServletRequest request, Ht

以表单的方式提交参数

PostFromHelper 代码 public class FormItemModel { /// <summary> /// 表单键,request["key"] /// </summary> public string Key { set; get; } /// <summary> /// 表单值,上传文件时忽略,request["key"].value /// </summary> public string

导出excel时,以form方式提交json数据

今天在写项目时写到一个excel的导出,开始想用ajax请求后台后导出,但发现ajax会有返回值,而且ajax无法直接输出文件,而后台的excel导出方法已经封装好,不方便修改. 就改用了提交的方式form,但form提交,表格分页用的是jquerytable,我需要将一些jquerytable的一些参数传到后台,但这些数据已经是json数据,如果我直接放在input中提交到后台在解析参数会很麻烦,所以就想将json数据转为form方式提交. js //导出 function exportExc