前端使用ajax提交form表单,后端使用的JSONObject进行jie接收参数
var strdata = $("#add").serializeArray();
var obj={};//给obj分配内存
for(var i =0;i<strdata .length;i++){
obj[strdata [i].name]=strdata [i]['value'];
}
var str= JSON.stringify(obj );//转换成string数据
$.ajax({
type: "POST", //提交的方法
dataType: "json",
contentType : 'application/json',
url:"http://127.0.0.1:8090/role", //提交的地址
data: str,// 序列化表单值
async: false,
error: function(request) { //失败的话
alert("Connection error");
},
success: function(data) { //成功
alert(data); //就将返回的数据显示出来
window.location.href="跳转页面"
}
});
});
如果不经过for循环直接使用 JSON.stringify(strdata );会导致数据为:
”[{name:"Name",value:"小明"},{name:"Age",value:"22"},{name:"Sex",value:"男"}]”//数组类型
所以要想得到:”{Name":"小明"},{"Age":"22"},{"Sex":"男"}”类型必须加入for循环,不加的话可以在后端进行处理。
@PostMapping(value = "/role")
public void insertRole(@RequestBody JSONObject jsonObject) {
String name = jsonObject.getString("Name");
}
}