大家好,本人小白前端一枚
最近用jquery.datatables插件启用serverSide选项发现他ajax出来的参数在浏览器里看是这样的
draw:1
columns[0][data]:name
columns[0][name]:
columns[0][searchable]:true
columns[0][orderable]:true
columns[0][search][value]:
columns[0][search][regex]:false
columns[1][data]:mobilePhone
columns[1][name]:
columns[1][searchable]:true
columns[1][orderable]:true
columns[1][search][value]:
columns[1][search][regex]:false
columns[2][data]:email
columns[2][name]:
columns[2][searchable]:true
columns[2][orderable]:true
columns[2][search][value]:
columns[2][search][regex]:false
columns[3][data]:registerDate
columns[3][name]:
columns[3][searchable]:true
columns[3][orderable]:true
columns[3][search][value]:
columns[3][search][regex]:false
order[0][column]:0
order[0][dir]:desc
start:0
length:10
search[value]:
search[regex]:false
这好像是jquery序列化参数的结果
但在后台接收的参数并不是嵌套的对象而是这样的
columns[0][data]: "name"
columns[0][name]: ""
columns[0][orderable]: "true"
columns[0][search][regex]: "false"
columns[0][search][value]: ""
columns[0][searchable]: "true"
columns[1][data]: "mobilePhone"
columns[1][name]: ""
columns[1][orderable]: "true"
columns[1][search][regex]: "false"
columns[1][search][value]: ""
columns[1][searchable]: "true"
columns[2][data]: "email"
columns[2][name]: ""
columns[2][orderable]: "true"
columns[2][search][regex]: "false"
columns[2][search][value]: ""
columns[2][searchable]: "true"
columns[3][data]: "registerDate"
columns[3][name]: ""
columns[3][orderable]: "true"
columns[3][search][regex]: "false"
columns[3][search][value]: ""
columns[3][searchable]: "true"
draw: "1"
length: "10"
order[0][column]: "0"
order[0][dir]: "desc"
search[regex]: "false"
search[value]: ""
start: "0"
nodejs在get请求时req.query可以正确转换成对象但post时req.body就是上面那样子
而搞java spring的完全不接受这种参数传递
请问如何让java spring 和nodejs 的bodyparser接收jquery的json序列化传参呢?
最简单的办法是用JSON来传
后台取到 json 之后再反序列化成对象,比如 Java 可以用 fastjson,nodejs 可以直接 JSON.parse(...)