post提交个人认为比提交好,post可以提交的信息量,虽然现在很流行使用chrome,但是,一些特定的企业,他们喜欢使用IE,这对程序员来说无疑又增加了一道门槛
- 首先,get请求,大量的信息提交会被截取,导出信息错误。
- 这里顺便提一下个人的经验,IE提交可以不需要的编码,但是chrome不行。
- 先上代码,之后再做解析
var form = $("<form/>");
var query=null;
query = [
{data:"type",name:"类型"},
{data:"name",name:"名字"},
{data:"date",name:"日期"},
{data:"age",name:"年龄"},]
var data_C= [
{name:"method",data:"exportActivitiesToExcel"},
{name:"core",data:"activity"},
{name:"url",data:window.location.host + window.location.pathname + window.location.search},
{name:"sort",data:this.sort},
{name:"query",data:JSON.stringify(this.MYquery)}
];
var input = document.createElement("input");
input.type = "hidden";
input.name ="columns";
input.value = JSON.stringify(query);
form.append(input);
for(var i in data_C){
var input = document.createElement("input");
input.type = "hidden";
input.name = data_C[i].name;
input.value = data_C[i].data;
form.append(input);
}
form.attr({
'style': 'display:none',
'method': 'post',
'target': '_blank',
'action':$.constantqueryserver
});
form.appendTo('body').submit().remove();
4.代码的组成很简单,就是创建一个虚拟的form表单,通过post提交的方式提交到后台,然后再清除这个表单。
query一看就是导出的标题列
data_C使我们要查询的数据的参数,例如,我们有的要排序,或者根据不同的要求导出,把需要的参数对应写到data_C里面就可以(这里注意一点,和后台沟通好,看看他获取的是什么方式)
创建一个input,把name和data循环给input,一条就是这样
<input name="名字" value="name">
结束后把所有的input添加给form,给form摄者属性隐藏,提交的post,action是提交的地址,
form.appendTo('body').submit().remove();
这段代码,就是把form添加到添加到body里提交后再把它移除。
我们的post提交这样就完成了。
get请求
get请求其实更简单的了,直接把参数写到地址的后面,这样就是个get请求了
var form = $("<form/>"),
action = $.constant.queryserver + "?" + encodeURI(query);
form.attr({
'style': 'display:none',
'method': 'post',
'target': '_blank',
'action': action
});
form.appendTo('body').submit().remove();
两种方式的导出就完成了。
加入我的技术群,一起学习
707196135