Ajax向后端传送数组数据防止序列化

本文介绍如何在使用Ajax向后端传输数组数据时,避免数据被序列化。通过设置Ajax的`traditional`参数为`true`,可以防止深度序列化,确保数组的正确传递。示例代码分别展示了前端Ajax的设置和后端Java接收数据的方式。
摘要由CSDN通过智能技术生成

一般情况下我们使用ajax向后台传送数据默认格式是:

contentType: "application/x-www-form-urlencoded; charset=UTF-8",

传输为key-value格式,例如: name:"zhangsan"
但是传送的都是String的值,因此如果要传送:name:["zhangsan","lisi"],这样的数据,传送到后台就把这个数组序列化,
所以,需要防止序列化组数的方式,可以使用: traditional: true,加入traditional后,就能够防止深度序列化。
以下,是我截取一部分代码的例子:

前端传递:
/*前端传递*/
const pidArr = ["PPL000005", "PPL000007", "P789"];
$.ajax({
    method: "POST",
    cache: "false",
    dataType: "JSON",
    traditional: true, //加入traditional防止深度序列化
    url: "http://localhost:8080/xxxx/deletePersons",
    data: {
        pidArr: pidArr,
    },
    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
    success: function (data) {
    },
    error: function () {
    },
});
后端接收:
/*后端接收*/
public void deletePersons(@RequestParam(value="pidArr") String[] pidArr,HttpServletRequest request, HttpServletResponse response) {}
        String[] pidArr2 = pidArr;
}
或者
public void deletePersons(HttpServletRequest request, HttpServletResponse response) {
        String[] pidArr = request.getParameterValues("pidArr");
}

终上、我们就可以使用ajax的data中向后台传递数组数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值