大家好,本人小白前端一枚
最近用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序列化传参呢?
The easiest way is to use JSON
The background fetches json and then deserializes it into an object. For example, Java can use fastjson, and nodejs can directly use JSON.parse(...)