跳至主要內容

ajax请求400错误的解决方法

三思原创大约 3 分钟前端前端ajax请求http400错误

本文介绍了解决SSM项目中使用Ajax POS 请求出现H P 400错误的几种情况和解决方法,包括参数数量不对应、前端参数书写问题、后端必须接收参数等情况。通过检查参数对应关系、数据类型、必传参数设置以及正确拼接参数等方式来避免常见的H P 400错误。

image
image

ajax请求http400错误的几种解决方法

前言 ssm项目使用ajax的post请求400

一、情况一(参数数量不对应)

后端接受的参数和前端传入参数的数量不一致

验证方法
打开浏览器开发者工具

image

查看前端的参数个数
然后查看后端参数

image

二、情况二(前端参数书写问题)

1.ajax下data里的key值和后端的参数名字要一一对应

image

红框里的的值要和后台的对象属性值一样(不能写错)

image

如果你接收的不是对象,而是一个Sting类型或者int类型的变量
需要参数名和ajax下的data的key值一样
如下图

image​​

2.参数的类型对应错误

例如前端传递的参数是一串字符串,而后端接收的参数类型是int的,也会导致400错误
前端参数

//前端
data{
bookid:'我是字符串'
}
//后端
....
public String addBook(int bookid){....}

这种情况也会导致报错

三、情况三(post请求下修改后端必须接收参数)

拿分页方法举例
page表示第几页,limit表示该页显示几条记录
如果默认访问该方法,应该返回所有数据,当点击第几页的时候,参传递这两个参数。
这是需要有两个地方注意
一个是要加@RequestParam(required = false)
表示这个参数不是必须要传的,默认值为null,
第二个需要把int类型改成Integer类型,不然也会报错,Integer的默认值是null,不是使用int,使用int默认值报错

四、拼接参数丢掉&或?

http://localhost:8080/test/gosp.do这样一个地址,拼接参数的时候,特别是拼接多个的时候,很容易犯丢掉&和?的错误
正确的形式如下
http://localhost:8080/test/gosp.do?userid=1&pwd=123
以下是几种错误例子
http://localhost:8080/test/gosp.douserid=1&pwd=123
http://localhost:8080/test/gosp.do?userid=1pwd=123

总结

如有其他情况问题,请留言补充。归根结底,http400还是自己马虎的问题,不是什么难题,只是要写的时候多注意。细心一点,并且参数命名要有一定的规律,避免随便的命名。还是比较好解决的。