前端向后端传数据的方法
1)通过url路径传递参数
1 var id = 5; 2 boolean flag = false; 3 4 /**重点:ajax只需要type和url属性*/ 5 $.ajax({ 6 async: false, 7 cache: false, 8 type: \'POST\', 9 url: \'area/delete/\' + flag + \'/\' + id, //(1)请求的action路径,可以传递参数到后台 10 error: function() { 11 alert(\'请求失败 \'); 12 }, 13 success: function(data) { 14 alert(data); 15 } 16 });
2)通过Ajax.data属性
1 var postData = { //(2)传递参数到后台,注意后台接收方式 2 "param1": "param1", 3 "areaId": 2, 4 "deleteId": 3, 5 "ids": "254,249,248" 6 /**重点:ajax的type,url,dataType,data属性*/ 7 $.ajax({ 8 async: false, 9 cache: false, 10 type: \'POST\', 11 url: \'area/delete\', 12 dataType: "json", 13 data: postData, 14 error: function() { 15 alert(\'请求失败 \'); 16 }, 17 success: function(data) { 18 alert(data); 19 } 20 21 });
3)通过Ajax.data属性传递多个参数
1 //第一步:定义json格式数据 2 var postData = { 3 "param1": "param1", 4 "areaId": 2, 5 "deleteId": 3 6 }; 7 /**ajax的type,url,dataType,contentType,data属性*/ 8 $.ajax({ 9 async: false, 10 cache: false, 11 type: \'POST\', 12 url: \'area/delete\', 13 dataType: "json", 14 contentType: \'application/json\', //第二步:定义格式 15 data: JSON.stringify(postData), //第二步;把json转为String传递给后台 16 error: function() { 17 alert(\'请求失败 \'); 18 }, 19 success: function(data) { 20 alert(data); 21 } 22 });
后端在接受参数时一般是
req.getParameter()
不过强烈建议用动态遍历
private TreeMap<String, String> getParams(HttpServletRequest request) { TreeMap<String, String> map = new TreeMap<String, String>(); Map reqMap = request.getParameterMap(); for (Object key : reqMap.keySet()) { String value = ((String[]) reqMap.get(key))[0]; System.out.println(key + ";" + value); map.put(key.toString(), value); } return map; }
然后直接用即可
TreeMap<String, String> params = getParams(request);
再对params进行操作
比如作为参数进行验证
boolean isSign = SybUtil.validSign(params, SybConstants.SYB_APPKEY);// 接受到推送通知,首先验签
public static boolean validSign(TreeMap<String,String> param,String appkey) throws Exception{ if(param!=null&&!param.isEmpty()){ if(!param.containsKey("sign")) return false; String sign = param.get("sign").toString(); String mysign = sign(param, appkey); return sign.toLowerCase().equals(mysign.toLowerCase()); } return false; }