ajax不走后台不报错,前台使用ajax访问后台Controller,浏览器网络状态码为空,前后台均不报错…

  • Post author:
  • Post category:其他

1.问题描述

访问的地址是:http://localhost:8080/XXX/addUser

先看浏览器访问效果:

1af7b62dccf269a53fd8d4ad33dcf7e3.png

前后台都未报错:

c7335a78aea1f82e378500dd814b67f6.png

在浏览器地址栏输入url:http://localhost:8080/XXX/addUser?username=xiaoming&birth=2019-05-03

浏览器状态码为400。

5edd94ac44b67b0a030f884ac284ea85.png

2.发现问题

解释一下状态码400的含义:

3b4130cc403419779d77cf6e92c2935a.png

于是我尝试分别传不同的参数,终于发现问题是前端向后端传递的是日期字符串,后台接参数的birth字段是Date类型,也就是前台传的日期字符串跟后台Date类型的属性不能正确绑定,所以才出现上述问题。

之前前台为了获取日期字符串,使用了@JsonFormat注解。9f29d06b80f62c8c35734fd776e06cd0.png

3.解决方法

添加@DateTimeFormat(pattern=”yyyy-MM-dd”)注解。

3ada1b0de486c8f4c54f46e2849f32bb.png

4.总结

@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone=”GMT+8″)的作用是使后台向前台传递Date类型的参数时,将Date类型转换为日期字符串。

@DateTimeFormat(pattern=”yyyy-MM-dd”)  的作用是使后台接收前台的日期字符串,将日期字符串转换为Date类型对象。