
下午在调页面的时候,提交一直400.前端修改了js代码。各种查询,都说是因为参数对应不上。错误如下图:

提交信息:

参数不一致?一个一个对应。没问题啊。
参数类型不一致?不好判断。但是可以使用spring mvc的:
@ResponseBody
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(HttpMessageNotReadableException.class)
public String messageNotReadable(HttpMessageNotReadableException exception, HttpServletResponse response){
log.error("请求参数不匹配。", exception);
return "";
}打印出的:

根据错误提示,说在salaryways对象中positionType这个对象是数组类型。不对啊。对象中是Int类型。那有可能是前端js处理的时候,传递的数组。
再次仔细查看提交数据:

我艹。确实是数组。修改后,测试ok.
网上其他遇到400解决方案:

下面这张图展现的就是请求成功的情形:

在我没有注意到“关键哦~”的关键点时,我还纳闷呢,明明两次的请求都是一样的,为什么一个成功,一个就失败了呢?
哦,后来定位到传输参数异样时,才发现:原来是areaOrSchoolId 的参数没有传过去,而这个参数在服务端又是一个必需项。所以,当前端请求没有传递所必须的参数时,请求就报了 Bad Request 的错误了!
综上所述:
出现了 Status Code:Http 400 Bad Request 错误的一种原因就是:参数匹配。包括以下两方面:
areaOrSchoolId 需为 int型,若传到后台的是string型则也会出现类似的错误。当然了,这只是400错误的一种表现形式。记录于此,给遇到同样问题的伙伴。