1.前端代码
var url = "http://192.168.10.137:8080/DB/QueryTest2";
var obj = {
"sql": "5kw6PfZltECaOUTQP1nRy6wo+Hl9pVUP/jY8/8uRNj8="
};
var array=new Array();
array.push(obj);
$.ajax({
url: url,
contentType: 'application/json',
data: JSON.stringify(array),
type: "POST",
async: true,
dataType: "json",
crossDomain: true,
//traditional: true, //参数里有数组时用true
//contentType: false, //使用formData是用到
//processData: false, //使用fromData时用到
success: function(data) {
$("#btnPost7")[0].innerText = "查询完成……";
$("#conent").text(JSON.stringify(data));
},
error: function(jqXHR, textStatus, errorThrown) {
$("#btnPost7")[0].innerText = "错误……";
}
});
前端代码上传的实际上json数组,如需要上传json,把data里改为json即可。此外,ajax里一定要加上contentType,data后面的值一定要通过JSON.stringify进行处理
2.后端代码
ublic List<LinkedHashMap> QueryTest2(@RequestBody List<Map<String,Object>> list) { String sql=""; var map=list.get(0); if (map.containsKey("sql")) sql = map.get("sql").toString(); if(sql!=null && sql!="") { sql= SecretUtil.desEncrypt(sql); } List<LinkedHashMap> rs= MySQLAdapter.Query(sql); return rs; }
通过设置参数类型为List<Map<String,Object>>,即可接收前端上传的json数组。