天天看點

前台使用ajax通路背景Controller,浏覽器網絡狀态碼為空,前背景均不報錯1.問題描述2.發現問題3.解決方法4.總結

1.問題描述

通路的位址是:http://localhost:8080/XXX/addUser

先看浏覽器通路效果:

前台使用ajax通路背景Controller,浏覽器網絡狀态碼為空,前背景均不報錯1.問題描述2.發現問題3.解決方法4.總結

前背景都未報錯:

前台使用ajax通路背景Controller,浏覽器網絡狀态碼為空,前背景均不報錯1.問題描述2.發現問題3.解決方法4.總結

在浏覽器位址欄輸入url:http://localhost:8080/XXX/addUser?username=xiaoming&birth=2019-05-03

浏覽器狀态碼為400。

前台使用ajax通路背景Controller,浏覽器網絡狀态碼為空,前背景均不報錯1.問題描述2.發現問題3.解決方法4.總結

2.發現問題

解釋一下狀态碼400的含義:

前台使用ajax通路背景Controller,浏覽器網絡狀态碼為空,前背景均不報錯1.問題描述2.發現問題3.解決方法4.總結

于是我嘗試分别傳不同的參數,終于發現問題是前端向後端傳遞的是日期字元串,背景接參數的birth字段是Date類型,也就是前台傳的日期字元串跟背景Date類型的屬性不能正确綁定,是以才出現上述問題。

之前前台為了擷取日期字元串,使用了@JsonFormat注解。

前台使用ajax通路背景Controller,浏覽器網絡狀态碼為空,前背景均不報錯1.問題描述2.發現問題3.解決方法4.總結

3.解決方法

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

前台使用ajax通路背景Controller,浏覽器網絡狀态碼為空,前背景均不報錯1.問題描述2.發現問題3.解決方法4.總結

4.總結

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")的作用是使背景向前台傳遞Date類型的參數時,将Date類型轉換為日期字元串。

@DateTimeFormat(pattern="yyyy-MM-dd")  的作用是使背景接收前台的日期字元串,将日期字元串轉換為Date類型對象。