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

前言

ssm项目使用ajax的post请求400

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

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

验证方法
打开浏览器开发者工具
在这里插入图片描述
查看前端的参数个数
然后查看后端参数
在这里插入图片描述
在这里插入图片描述

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

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

在这里插入图片描述
红框里的的值要和后台的对象属性值一样(不能写错)
在这里插入图片描述
如果你接收的不是对象,而是一个Sting类型或者int类型的变量
需要参数名和ajax下的data的key值一样
如下图
在这里插入图片描述
在这里插入图片描述

2.参数的类型对应错误

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

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

这种情况也会导致报错

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

拿分页方法举例
page表示第几页,limit表示该页显示几条记录

@RequestMapping(value ="getdata.do")
    @ResponseBody
    public Map test(@RequestParam(required = false) Integer page, Integer 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还是自己马虎的问题,不是什么难题,只是要写的时候多注意。细心一点,并且参数命名要有一定的规律,避免随便的命名。还是比较好解决的。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果你在使用 jQuery 的 AJAX 发起 POST 请求时遇到了 CORS 错误,可以尝试以下几种方法解决问题: 1. 在服务端添加 CORS 头信息 在服务端的响应头中添加以下信息: ``` Access-Control-Allow-Origin: * Access-Control-Allow-Methods: POST Access-Control-Allow-Headers: Content-Type ``` 其中,`Access-Control-Allow-Origin` 表示允许跨域的源,`*` 表示任意来源都可以跨域访问;`Access-Control-Allow-Methods` 表示允许跨域请求方法,这里只需要设置 `POST` 即可;`Access-Control-Allow-Headers` 表示允许跨域请求携带的请求头,这里只需要设置 `Content-Type` 即可。 2. 使用 JSONP 如果服务端无法添加 CORS 头信息,可以考虑使用 JSONP 跨域请求。在 jQuery 中使用 JSONP 的方式如下: ```javascript $.ajax({ url: 'http://example.com/api', type: 'POST', dataType: 'jsonp', jsonp: 'callback', data: postData, success: function(data) { console.log(data); }, error: function(xhr, status, error) { console.log(error); } }); ``` 其中,`dataType` 设置为 `jsonp`,`jsonp` 设置为 `callback`,这样 jQuery 就会自动将 POST 请求转为 GET 请求,并在 URL 中添加一个 `callback` 参数,服务端返回的数据会被包裹在 `callback` 函数中,然后在客户端调用该函数即可。 3. 使用代理方式 如果以上两种方法都无法解决问题,可以考虑使用代理方式。在客户端发起请求时,先将请求发送到自己的服务器,然后由自己的服务器再发起请求到目标服务器,最后将目标服务器的响应返回给客户端。这样就不会遇到跨域问题了。 以上是一些解决 jq ajax CORS 错误 post 请求方法,希望对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我柒月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值