当前位置:   article > 正文

前端传数组给后台

前端传数组

很多次遇到需要传数组到后台的情况,以前都是用“,”分隔组合成字符串传给后台,然后后台再拆分。这样做可以解决,但是很麻烦,要做几次判断,并且还要考虑传的数据里面有“,”的情况。于是上网搜索了一下,总结有两种方法(以前也搜索过,但是一直都没结果,不知道是不是姿势不对,今天既然有结果了,何不做个记录[微笑]

方法一:使用JSON.stringify 将数组对象转化成json字符串

这种方法是在前端的时候就把数组使用JSON.stringify的方式转换成后台认识的样子,后台就可以直接接收了:
js代码:(这里使用json的提交方式)

var ids = ['1','2'];
$.ajax({
	type : 'POST',
	url: 'course/delete',
	contentType : "application/json" ,
	data: JSON.stringify(ids),
	success : function(data) {
	}
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

传输的数据是这样的:
在这里插入图片描述
后台处理:

@RequestMapping(value = "/delete", method = {RequestMethod.POST})
@ResponseBody
public void delete(@RequestBody String[] id) {
	for (String string : id) {
        System.out.println(string);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

方法二:前端不作处理,在后台处理

js代码:(这里使用form的提交方式)

var array = ["1", "2"];
$.ajax({  
    type : 'POST',  
    url: 'course/delete',
    contentType: "application/x-www-form-urlencoded",
    data: {"array": array},
    success : function(data) {  
    }  
}); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

传输的数据是这样的:
在这里插入图片描述
后台处理:

@RequestMapping(value = "/delete", method = {RequestMethod.POST})
public void delete(HttpServletRequest req) {
    String[] array = req.getParameterValues("array[]");
    for (String string : array) {
        System.out.println(string);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

再次注意:两种post请求的content-type不同!

参考博文:原文

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/280063
推荐阅读
相关标签
  

闽ICP备14008679号