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

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

ajax请求如下:

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

好家伙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) {}

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

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

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

如下:

$.ajax({
url:'/jiafen?XXX='+xxx,
.....
})

之前是这样的:

$.ajax({
url:'jiafen?XXX='+xxx,
.....
})

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

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

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
400 Bad Request是HTTP状态码之一,表示客户端发送的请求有语法错误,服务器无法理解。 引发400 Bad Request错误的原因可能有以下几种: 1. 参数类型不匹配:请求中的参数类型与服务器端的接收参数类型不一致,导致无法解析。例如,将一个字符串类型的参数传递给一个需要整数类型的参数的方法。 2. 缺少必需的参数:请求缺少了必需的参数,服务器无法正常处理。例如,服务器需要某个参数来执行操作,但请求中没有提供该参数。 3. 参数格式错误:请求中的参数格式不正确,服务器无法正确解析。例如,请求中的日期格式不符合规定的格式。 4. 请求路径错误:请求的路径可能不正确,服务器无法找到对应的处理方法。例如,请求的路径与服务器端的请求映射不匹配。 5. 请求内容错误:请求中的内容格式不正确,服务器无法解析请求体中的数据。例如,使用了错误的数据格式(如JSON格式错误)。 解决400 Bad Request错误的方法: 1. 检查请求参数的类型和格式是否正确,确保与服务器端的接收参数类型一致。 2. 检查请求中是否包含必需的参数,确保参数完整。 3. 检查请求路径是否正确,确保与服务器端的请求映射匹配。 4. 检查请求内容的格式是否正确,确保请求体中的数据格式符合要求。 相关问题: 1. 除了400 Bad Request,HTTP还有哪些常见的状态码,分别表示什么含义? 2. 在Spring MVC中,如何处理请求参数类型不匹配的异常? 3. 如何在Java中发送HTTP请求并处理返回结果? 4. HTTP请求中的请求头和请求体有什么区别?如何设置请求头和请求体? 5. 什么是RESTful API,如何设计和实现一个RESTful API?<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [!!400(bad request)的解决方案](https://blog.csdn.net/sxh06/article/details/115838987)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值