下午在调页面的时候,提交一直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
错误的一种表现形式。记录于此,给遇到同样问题的伙伴。