当前位置:   article > 正文

踩坑!!400(bad request)的解决方案_前端400 bad request

前端400 bad request

最近在做一个ssm+shiro的在线组卷,在线考试平台时,我在考生点击交卷按钮后发送一个ajax请求给后端,完成交卷,但是前端却提示如下
在这里插入图片描述

ajax请求如下:

url:'jiafen?content='+content+'&myselect='+val+"&examId="+'${sessionScope.thisenexamId}'+'&username='+'${user.username}'
  • 1

好家伙400,然后我就一顿百度,网友说是什么请求参数的问题,参数个数不匹配,请求无法被识别,我都尝试过一遍后,并没有解决问题
我打开idea的控制台,他提示错误如下

Failed to bind request element:
org.springframework.web.method.annotation.MethodArgumentTypeMismatchException:
Failed to convert value of type ‘java.lang.String’ to required type
‘int’; nested exception is java.lang.NumberFormatException: For input
string: “jiafen”

可是我的请求里根本没有日期转换啥的问题

然后我问了我的老师,他说是请求参数的问题,说是请求的jiafen也被识别成了字符串

我恍然大悟,打开请求地址一看,果然,请求路径是
localhost:8080/anexam/79/jiafen?content=。。。。。
然而我在controller层的requestMapper却是这样写的

@ResponseBody    
@RequestMapping(value = "/jiafen",method = RequestMethod.GET)    
public void  jiafen(HttpServletRequest request) {}
  • 1
  • 2
  • 3

我直接原地吐血,原来是请求路径压根不对

一个是在/anexam/79后面追加jiafen请求
一个是在8080下面直接请求

但是我是考生访问试卷,所以每次访问的url是不一样的,所以,我把前端的ajax请求前面加一个/就解决了400的问题

如下:

$.ajax({
url:'/jiafen?XXX='+xxx,
.....
})
  • 1
  • 2
  • 3
  • 4

之前是这样的:

$.ajax({
url:'jiafen?XXX='+xxx,
.....
})
  • 1
  • 2
  • 3
  • 4

唉!!找bug真不容易,找了几个小时,一个惨痛的教训

当然,每个人遇到的400,对应的解决方法都会不一样,以上思路仅供参考!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/304974
推荐阅读
相关标签
  

闽ICP备14008679号