前沿
无数个400,415和500换来的经验!
前端
// modify_layer.course是js对象
var data = {
"course": modify_layer.course,
"sno": parseInt(sno)
}
// 注意要JSON.stringify,另外contentType要配成json的
$.ajax({
type: "post",
url: "modifyCourse",
data: JSON.stringify(data),
dataType: "text",
contentType:"application/json;charset=utf-8",
success: function(data) {
if(data == "ok") {
select();
} else
alert("error");
},
error: function(e) {
console.log(e);
}
});
后端
@RequestMapping(value = "/modifyCourse", produces = "text/html;charset=UTF-8", consumes = "application/json;charset=UTF-8")
@ResponseBody
// @RequestBody不能在多个参数上同时使用!!!,只能使用在一个参数上,之后自行反序列化
public String modifyCourse(@RequestBody Map<String, Object> data) {
// 不要用toString,那样key上不带双引号,parse会出错。要用toJSONString
String crsJSON = JSON.toJSONString(data.get("course"));
// 通过crsJSON,解析出couse对象
Course course = JSON.parseObject(crsJSON, Course.class);
// 基本类型可以直接强制转换获得
int sno = (int)data.get("sno");
int i = courseService.modifyCourse(course, sno);
if (i > 0)
return "ok";
else
return "error";
}
参考
感谢 https://blog.csdn.net/qq_34608620/article/details/80635139