1、从前台向后台传递数组
需求是:比如相同name的几个控件的value要传递到后台进行比较处理
var CA_CERT = document.getElementsByName("CA_CERT");
var _list = [];
for (var i = 0; i < CA_CERT.length; i++) {
_list[i] = CA_CERT[i].value;
}
$.ajax({
url:'ca?event=testCertList',
data:{"caCertArray":_list},
traditional :true, //注意这个参数是必须的
type: "POST",
success:function(result){
if(result == "GOOD"){
document.getElementById("stage_two").style.display="";
}else if(result == "ERROR"){
alert("所上传证书不是一个完整的证书链,请重新上传!");
}
}
});
}
后台获取:
String[] caCertArray = request.getParameterValues("caCertArray");
后台向前台传递,可以先将数组放在JSONArray中(需要引入第三方jar包),然后放入response中,前台获取后需要先用eval()方法处理一下才可以使用。
JSONArray jsArr = new JSONArray();
jsArr.add(subject);
jsArr.add(strStartDate);
jsArr.add(strEndDate);
response.getWriter().write(jsArr.toString());
前台获取:
$.ajax({
url:'ca?event=getCertChainUnderInfo',
data:{"caCertArray":_list},
traditional:true,
type:"POST",
success:function(result){
//eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
//在这里是将String转化为数组形式
var datas= eval(result);
document.getElementById("label_CA_SUBJECT").innerText = datas[0];
document.getElementById("label_CA_BEGIN_TIME").innerText = datas[1];
document.getElementById("label_CA_END_TIME").innerText = datas[2];
}
});
在jquery的ajax函数中,可以传入3种类型的数据
1.文本:”uname=alice&mobileIpt=110&birthday=1983-05-12”
2.json对象:{uanme:’vic’,mobileIpt:’110’,birthday:’2013-11-11’}
3.json数组:
[
{“name”:”uname”,”value”:”alice”},
{“name”:”mobileIpt”,”value”:”110”},
{“name”:”birthday”,”value”:”2012-11-11”}
]