少东西解决办法是在$.ajax中加入
headers: {
"Content-Type": "application/json"
},
会在 HTTP头部加入Content-Type属性,告诉服务器,参数是json格式的。
修改后前端代码为:
var p1 = $('#myform').serialize();
//city=440300&county=440303&dcode=440303&type=3&supid=440100&organiz=440101&name=aaa&licnum=22&licetime=2018-03-13
var p2 = JSON.stringify($('#myform').serialize());
//"city=440300&county=440303&dcode=440303&type=3&supid=440100&organiz=440101&name=aaa&licnum=22&licetime=2018-03-13"
var paramObj = $('#myform').serializeJSON();
// ==> Object类型
var param = JSON.stringify($('#myform').serializeJSON());
// ==> 对象序列化为JSON字符串 {"city":"440300","county":"440303","dcode":"440303","type":"3","supid":"440100"}
$.ajax({
headers: {
"Content-Type": "application/json"
},
type : "POST",
async : false,
url :path +'/baseSch/add',
data : param,
success: function(data) {
var d = data.data;
if(d == "操作成功!") {
alert(d);
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
parent.layer.close(index);
parent.location.reload();
} else {
alert(d);
}
}
});
注:使用$('#myform').serializeJSON();要引入jquery.serializejson.min.js
后端代码为:
@RequestMapping(value = "/add",method = RequestMethod.POST )
@ResponseBody
public ResultEntity add(@RequestBody BaseSch baseSch,HttpServletRequest request, HttpSession session) {
...
}