第一种情况

去看一下前端传的参数是不是有接口里没有的参数,,前端调用接口传的参数可以少,但一定不要比接口中的接受对象里的属性多。

举个例子:你用ajax发送了一个post请求携带的json参数是这样的:

{
 “name”:“四百”,
 “age”:“100”,
 “sex”:“man”
 }

然后你请求的后端接口是这样的:

@PostController("/newbee")
 puiblic String newbee(@RequsestBody Person person){}

然后Person是这样的:

class Person{
 private String name;
 private String age;
 }

Person里根本就没有sex属性,但是前端发请求的时候在json里又加了这个它没有的,那么spring就无法装载这个对象,返回的状态码就是400。

第二种情况

前端请求接口的时候,携带的参数名称错误。其实和第一种情况的本质是一样的,拿第一种情况中的例子,如果说

axios 接口500得响应拦截 接口响应400_axios 接口500得响应拦截


这个地方,前端不小心把name打成了nane,那么后台接口用来装载数据的对象也是不会装载成功了,,其实这种情况和第一种的本质是一样的

==>前后端参数不一致,导致后台无法接受请求中的数据!

那么如果说仔仔细细的检查之后发现不是以上两种情况,那么你可以在controller中的第一行用log或者print打印点什么东西,看看请求有没有进到方法体里面,如果说都你加了log或者print之后发送请求控制台什么都没有输出的话,,那么问题就一定是出在网络层面了,如果你定义了一个拦截类去解决跨域或者其他关于请求的问题,,那么可以去拦截器里定位一下程序最终执行的地方,再往上一步去定位到可能出问题的地方。

总结: http状态码对应的含义:开源中国(OS) HTTP状态码详解 看400那栏,400状态码对应的内容

补充一个Spring中指向的状态码含义解释地址:

axios 接口500得响应拦截 接口响应400_状态码_02

------------> HttpStatus