ajax通过post方法传数组

ajax在web项目开发中经常会用到,平时我们传递数据,基本都是一个参数名对应一个参数值,后端通过参数名就可以得到参数,从而进行相关逻辑处理,但是有时候我们会遇到批量操作,比如批量删除一个列表,这时候我们传递的就是一个id的数组,这时候前后端需要对数组传递做一些特别的处理:

第一种方式:

  • 通过ajax一个属性traditional:true来指定参数序列化时,不做深度序列化。
  • 通过JSON.stringify()将参数作为数组传递到后台,后台不能通过获取参数名的方式获取参数,需要通过inputstream流来读取参数。

前端代码:

后端代码(springmvc):

这种方式我们传递的参数form-data中,每个参数在传递的过程中有一个参数名,这里叫ids,如果不做traditional:true的设置,参数传递中是这样子参数名ids后面加入了[],服务端是无法通过参数名获取参数的:

 

当设置traditional:true之后,参数变为这样子:

这种参数传递的方式,后端可以直接通过参数名ids来获取参数值,获取的参数也是一个数组。

第二种方式:通过body传入一个数组,参数没有名字,后端需要通过流来读取。

前端代码:

后端代码(springmvc):

这种方式form-data是这个样子的:

参数没有名字,后端需要通过输入流来读取body中的数据。这里需要注意一点,如果还有别的参数,获取body中的参数一定要在别的参数取之前获取。否则一旦通过request.getParameter()之后,body中的参数就会失效。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值