ajax 前端入参为数组,springmvc 后台如何接收。

总能遇到些千奇百怪的玩意儿!!!!!!
这几种是测试之后的结果 ,不知道为啥。学习之后再来补充原因

第一种: 以 JSON.stringify(ids) 将数组转为 json 字符串,
必须要 contentType : “application/json”, 如果不加 contentType : “application/json”, 则入参可以是对象。

前端 :
var ids =[];
for(var i=0 ;i<3;i++){
ids.push(‘测试’+i);
}

$.ajax({
type : “POST”,
url : contextPath + “/fzb/gyspj/deleteGyspj”,
dataType : “json”,
data: JSON.stringify(ids),
contentType : “application/json”, // 这种方式必须要 该参数
success : function(data) {

}
});
}
});

后台:
必须添加 @RequestBody否则 参数为null。

@RequestMapping(value = {"deleteGyspj", ""},method={RequestMethod.POST})
@ResponseBody
public Map<String,Object> deleteGyspj( @RequestBody String[] listMap){
    Map<String,Object> map = new HashMap<String,Object>();

    return map;
}

第二种:
前台直接传数组 : 需要以 data: {ids:ids}, 传递 不能带 contentType : “application/json”,

var ids =[];
for(var i=0 ;i<3;i++){
ids.push(‘测试’+i);
}
$.ajax({
type : “POST”,
url : contextPath + “/fzb/gyspj/deleteGyspj”,
dataType : “json”,// 设置返回的数据格式
data: {ids:ids},
success : function(data) {

}
    });

}

后台接收: 后台接收 需要 @RequestParam(value=”ids[]”) 注意:这里 必须写 value =ids[]
并且 必须带中阔号。

@RequiresPermissions("fzb:wlz:del")
@RequestMapping(value = {"deleteGyspj", ""},method={RequestMethod.POST})
@ResponseBody
public Map<String,Object> deleteGyspj( @RequestParam(value="ids[]") String[] listMap){
    Map<String,Object> map = new HashMap<String,Object>();

    return map;
}

第三种:这种和第一种没有本质的区别: 方式一样, json对象转json字符串传递。

前端:

    $.ajax({
type : "POST",

url : contextPath + “/fzb/gyspj/deleteGyspj”,
dataType : “json”,// 设置返回的数据格式
data: JSON.stringify(rows),
contentType : “application/json”,
success : function(data) {

}
});

后台:

@RequestMapping(value = {"deleteGyspj", ""},method={RequestMethod.POST})
@ResponseBody
public Map<String,Object> deleteGyspj( @RequestBody List<Map<String, Object>> listMap){
    Map<String,Object> map = new HashMap<String,Object>();

    return map;
}

————————————————————一些笔记————————————————-

不使用contentType: “application/json”则data可以是对象
$.ajax({
url: actionurl,
type: “POST”,
datType: “JSON”,
data: { id: nodeId },
async: false,
success: function () {}
});

使用contentType: “application/json”则data只能是json字符串

可以使用JSON.stringify();
$.ajax({
url: actionurl,
type: “POST”,
datType: “JSON”,
contentType: “application/json”
data: “{‘id’: ” + nodeId +”}”,
async: false,
success: function () {}
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值