SpringMVC使用@RequestBody注解报400错误

原因

  1.  采用GET请求方式而不是POST请求方式。
  2. 或者是传入的json字符串和对应封装的对象不对应,以及封装的接收对象中的字段类型有没有Date类型或者int等不是String类型。

解决方法

方法一:将GET请求方式换成POST请求方式。

方法二:若有,则在set方法中统一将传入的参数调整为String类型。

private Date startTime;
public Date getStartTime() {
  return startTime;
}
public void setStartTime(String startTime) {
  SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  try {
    this.startTime = dateFormat.parse(startTime);
  } catch (ParseException e) {
    this.startTime = null;
  }
}

这样写就可以了,不要将形参的类型写成Date类型。

前台的ajax发送如下:

$.ajax({
    type : "POST",
    contentType : "application/json",
    url : xxx,// 请求路径
    data : JSON.stringify(data),// 将data转换为json字符串格式
    success : function(result) {
    }
});

后台接收:

@PostMapping("all")
public ResultEntity fetchActive(@RequestBody ActiveReqVo reqVo){
     return null;
}

终于解决了

 



posted @ 2020-06-30 17:30  走向大牛的路上  阅读(976)  评论(0编辑  收藏  举报