前段时间研发需要ajax传数组到后台,研究了好久得出以下的办法
前端:1.采用$.post提交
$.post("xxx",{"array":array},function(data){
alert(data);});
array是js数组.
2.后台:
@RequestMapping("/xxx")
@ResponseBody
public Map<String,String> billRecalculation(
@RequestParam(value ="array[]") String[] array) {
LOGGER.info("bill Recalculation![start] param = "
+ JSONUtils.toJsonString(array));
Map<String,String> resultMap =new HashMap<String,String>();
returnresultMap;
}
注意入参@RequestParam(value ="array[]") String[]array,这样才能接收到数组数据
后来因为业务需要我又使用了$.ajax提交的方法.但是行不通.返回400报错.
后来发现是ajax的一些属性设置有问题.不能设置dataType,这点非常重要.具体的参数如下:
$.ajax({
type: "post",
url:"xxx",
data:{"array":array},
async: false,
success: function(data) {
alert(data.message);
}
});
这样的话就能正常提交后台处理了.