前端向后端传数据的方法
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; }
