使用springmvc和Ajax进行数据交互时使用标签@RequestBody时我报了这两个错,刚开始对springmvc的使用和注解有点迷,然后踩坑上了。

  先说下怎么才会踩上去。首先@RequestBody在一个Controller的一个方法中只能用一次,所以如果你使用了两次意图在一个方法中封装两个实体,那你铁定时解决不了的.

  原因:1.request.getInputStream()在一次请求只执行一次。@RequestBody是将前台传递的对象一次性尝试封装到你使用的实体中,也就是你设置在@RequstBody后面的那个参数。如果你实在是有必要在这个方法中使用多个实体的属性的话,我建议新建一个实体Bean。将你需要的实体属性封装,然后确保你发送的Ajax数据正确的被转成json格式的字符串而不是对象然后发给controller。

       2.传递的json的 key值和你期望封装的实体名要一致,你可以少给 但一定不要多给,不要乱给。比如方法中你期望 @requestBody User  user包含 String username ,String password,Long user_id;你可以在Ajax中只发送 username 或password 或user_id

或者任意两种,三种的组合。你不能给usernnnnnname,或者其他乱七八糟的东西,总之就是少给可以 ,多给不行,乱给也不行。

     3.如果你不确定你的Ajax是否使用正确的话,就将必要的参数设置完全如设置浏览器的content-Type  :contentType:'application/json;charset=utf-8'   另外确保没有中文格式的字符。参照

 function submitComment(){
var comment_details=$('#comment_details').val();
var forum_id=$('#forum_id').val();
var dataa={
"comment_details":comment_details,
"forum_id":forum_id,
};
var d=JSON.stringify(dataa);
$.ajax({
type:'post',
url:'../comment/releaseComment',
contentType:'application/json;charset=utf-8',
data:d,
dataType:'json',
success:function(data){
$('#comment_details').val('');
window.location.reload();
}
})
}

JSON.stringify是个不错的工具,但是网上貌似有老哥被坑过因为经过这个函数转换后json对象会变成json字符串

。以上就是我纠结了挺久的@RequestBody 报错400 和415的解决办法。

@RequestBody ajax 415 400的更多相关文章

  1. 解决ajax请求(SpringMVC后台)响应415/400/405错误

    解决ajax请求(SpringMVC后台)响应415/400/405错误 后端代码 bean public class user { private String username; private ...

  2. web前端 ajax请求报415/400错

    一.当使用jQuery 的ajax发送请求时 1.请求路劲没有出错并且不存在跨域,出现415错误 解决方法:在ajax请求中加上contentType: 'application/json', $.a ...

  3. ajax post 请求415\ 400 错误

    今天用ajax 向后台发送 post请求时,出现了两个问题: 1, 发送请求后,控制台 返回  Unsupported media type-415(不支持的媒体类型),这时突然想起来,post 请求 ...

  4. ajax 415

    ajax 发送post请求是出现415错误,是ajax的格式有问题,如下. $.ajax({ type: 'POST', url: '/login', data: { "username&q ...

  5. json 报错415 400

    JS操作JSON总结   $(function(){ $.ajax({ method: 'post', url: '/starMOOC/forum/getSectionList', dataType: ...

  6. SpringMVC中@RequestBody引起的400异常处理,返回校验失败具体信息

    问题 使用@RequestBody接收一个json数据的时候,如果传入的参数不符合条件,就会直接返回400的error page. 但究竟是为什么会400并没有抛出来.这对大量参数字段的我们来说,排错 ...

  7. SpringMVC关于ajax提交400错误(后台获取为null)

    400错误有三种情况 1:请求的数据量过大,不过这种情况一般很少见. 2:请求的data参数有误,确保每一个参数都能请求到. 注释:之前小白出现400错误,后台获取参数为null是因为第三种情况,经过 ...

  8. Springmvc ajax请求400

    转载做记录 传JSON对象 前端 function test () { var param = {username : "yitop"}; $.ajax({ timeout : 2 ...

  9. SpringBoot RequestBody ajax提交对象

    前端实现: var student = { "name":1, "age":2, "score":3 }; $.ajax({ url:&qu ...

随机推荐

  1. Django-404错误处理

    404错误是用户输入错误的URL,在 URLconf 中匹配不到相应的URL而抛出的异常 如下图: 为了给用户提供一个友好的访问,需要配置404错误页面 1.在 templates 目录下新建 404 ...

  2. 虚拟机-linux系统中图形界面和命令行界面切换

    linux系统中图形化界面和命令行界面之间的切换可以分为两种,临时性切换和永久性切换. 临时性切换即切换后只对本次生效,系统重启后界面还是默认界面. 永久性切换即切换后系统开机后永远处于的界面. 临时 ...

  3. SQL Server基础之登陆触发器

    虽然同表级(DML)触发器和库级(DDL)触发器共顶着一个帽子,但登陆触发器与二者有本质区别.无论表级还是库级,都是用来进行数据管理的,而登陆触发器是纯粹的安全工具. 登陆触发器只响应LOGON事件, ...

  4. SQL Server 锁实验(SELECT加锁探究)

    本例中使用begin tran和with (holdlock)提示来观察SQL Server在select语句中的锁. 开启事务是为了保证时间极短的查询也能观察到锁情况,holdlock相当于开启序列 ...

  5. python之bytes和string

    转自:https://www.cnblogs.com/skiler/p/6687337.html 1.bytes主要是给在计算机看的,string主要是给人看的 2.中间有个桥梁就是编码规则,现在大趋 ...

  6. CVE-2012-0158 分析

    目录 CVE-2012-0158 分析&利用 1.实验环境 2.下载poc样本 3.调试并找到漏洞触发点 4.分析漏洞触发模块及流程 5.漏洞利用 6.总结 7.参考资料 CVE-2012-0 ...

  7. js对WebApi请求的基本操作

    在WebAPI对外提供的,大概有4种接口,get,post,delete,put,现在,我就简单的来说一下js请求webApi的方式和大概的作用: get:在webApi中,get方法通常是用来获取数 ...

  8. centos7 下安装Apache2+MariaDB+PHP5过程详解

    1.启用Apache2 Centos7默认已经安装httpd服务,只是没有启动.如果你需要全新安装,可以 yum install -y httpd 启动服务:systemctl start httpd ...

  9. 6.context对象

  10. Iframe框架+table布局 +div布局实例

    <td colspan="2" style="width: 80%"> <iframe src="http://www.baidu. ...