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

一般情况下我们使用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中向后台传递数组数据了。

猜你喜欢

转载自blog.csdn.net/aspire_cj/article/details/105390549
今日推荐