第一种情况
去看一下前端传的参数是不是有接口里没有的参数,,前端调用接口传的参数可以少,但一定不要比接口中的接受对象里的属性多。
举个例子:你用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。
第二种情况
前端请求接口的时候,携带的参数名称错误。其实和第一种情况的本质是一样的,拿第一种情况中的例子,如果说
这个地方,前端不小心把name打成了nane,那么后台接口用来装载数据的对象也是不会装载成功了,,其实这种情况和第一种的本质是一样的
==>前后端参数不一致,导致后台无法接受请求中的数据!
那么如果说仔仔细细的检查之后发现不是以上两种情况,那么你可以在controller中的第一行用log或者print打印点什么东西,看看请求有没有进到方法体里面,如果说都你加了log或者print之后发送请求控制台什么都没有输出的话,,那么问题就一定是出在网络层面了,如果你定义了一个拦截类去解决跨域或者其他关于请求的问题,,那么可以去拦截器里定位一下程序最终执行的地方,再往上一步去定位到可能出问题的地方。
总结: http状态码对应的含义:开源中国(OS) HTTP状态码详解 看400那栏,400状态码对应的内容
补充一个Spring中指向的状态码含义解释地址:
------------> HttpStatus