第一种
jQuery.ajax 同时jquery 序列化 ,调用一方法,name:value的形式
有调用超时相应,但传递参数不能为“汉字”
jquery 序列化 name:value的形式 变成字符串,不是数组
/*
function exportExcel1(){
loading();
//提交form中元素中 参数序列化 machineOpenedList为 form 的id
var data1 = convertArray($("#machineOpenedList").serializeArray());
alert(data1.trade);
jQuery.ajax({
url: '<%=request.getContextPath()%>/json/machineOpenedjson.jspa', //提交的action
dataType: "script",
timeout:10000, //加载时间
data:data1,
beforeSend:function(XMLHttpRequest){
},
success: function(data) { //获取成功
data = data.substr(1,data.length-6)
// window.open("<%=request.getContextPath()%>/tempexcel/"+data+".xls");
document.getElementById("fileUrlPath").innerHTML = "<a href=<%=request.getContextPath()%>/tempexcel/"+data+".xls οnclick=\"javascript: loaded();target='_blank' \" >样机开通分析表 (点击下载)</a>";
document.getElementById("loadingImg").innerHTML="数据加载完成,请下载!";
document.getElementById("searchB").disabled="";
document.getElementById("exportB").disabled="";
},
error: function(XMLHttpRequest, textStatus, errorThrown) { //数据获取失败
//document.getElementById("loadDiv").innerHTML="数据加载错误!";
alert("数据加载失败,请重新导出!");
loaded();
}
});
}
*/
//jquery 序列化 name:value的形式 变成字符串,不是数组
function convertArray(o) {
var v = {};
for (var i in o) {
if (typeof (v[o[i].name]) == 'undefined') v[o[i].name] = o[i].value;
else v[o[i].name] += "," + o[i].value;
}
return v;
}
function loading(){
document.getElementById("loadingImg").innerHTML="<img align=\"middle\" src=\"<%=request.getContextPath()%>\/images\/7.gif\" \/>正在加载数据,请稍后……";
document.getElementById("loadingImg").style.display='block';
document.getElementById("searchB").disabled="disabled"; //点击按钮不可用
document.getElementById("exportB").disabled="disabled";
}
function loaded(){
document.getElementById("loadingImg").style.display='none';
document.getElementById("fileUrlPath").innerHTML="";
document.getElementById("searchB").disabled="";
document.getElementById("exportB").disabled="";
}
第二种
jQuery.ajax 不能传递汉字 参数,同时jquery 序列化 ,拼参数
function exportExcel(){
if(fun(2)){
loading();
var v="?export=1&"+$("#searchfrom").serialize(); //拼参数 ,没变成字符串
jQuery.ajax({
url: '<%=request.getContextPath()%>/json/appClassDetAnaStaList.jspa'+v,
dataType: "script",
timeout:10000,
beforeSend:function(XMLHttpRequest){
},
success: function(data) {
data = data.substr(1,data.length-6)
// window.open("<%=request.getContextPath()%>/tempexcel/"+data+".xls");
document.getElementById("fileUrlPath").innerHTML = "<a href=<%=request.getContextPath()%>/tempexcel/"+data+".xls οnclick=\"javascript: loaded();\" >应用到大类明细分析 (点击下载)</a>";
document.getElementById("loadingImg").innerHTML="数据加载完成,请下载!";
document.getElementById("searchB").disabled="";
document.getElementById("exportB").disabled="";
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
//document.getElementById("loadDiv").innerHTML="数据加载错误!";
alert("数据加载失败,请重新导出!");
loaded();
}
});
}
}
第三种 $.post可以传递汉字参数
function exportExcel(){
loading();
var data = convertArray($("#machineOpenedList").serializeArray());
$.post('<%=request.getContextPath()%>/json/machineOpenedjson.jspa', data,function(json){
document.getElementById("fileUrlPath").innerHTML = "<a href=<%=request.getContextPath()%>/tempexcel/"+json+" οnclick=\"javascript: loaded();\" >样机开通分析表 (点击下载)</a>";
document.getElementById("loadingImg").innerHTML="数据加载完成,请下载!";
document.getElementById("searchB").disabled="";
document.getElementById("exportB").disabled="";
},"json");
}