@RequestBody ajax 415 400
使用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的更多相关文章
- 解决ajax请求(SpringMVC后台)响应415/400/405错误
解决ajax请求(SpringMVC后台)响应415/400/405错误 后端代码 bean public class user { private String username; private ...
- web前端 ajax请求报415/400错
一.当使用jQuery 的ajax发送请求时 1.请求路劲没有出错并且不存在跨域,出现415错误 解决方法:在ajax请求中加上contentType: 'application/json', $.a ...
- ajax post 请求415\ 400 错误
今天用ajax 向后台发送 post请求时,出现了两个问题: 1, 发送请求后,控制台 返回 Unsupported media type-415(不支持的媒体类型),这时突然想起来,post 请求 ...
- ajax 415
ajax 发送post请求是出现415错误,是ajax的格式有问题,如下. $.ajax({ type: 'POST', url: '/login', data: { "username&q ...
- json 报错415 400
JS操作JSON总结 $(function(){ $.ajax({ method: 'post', url: '/starMOOC/forum/getSectionList', dataType: ...
- SpringMVC中@RequestBody引起的400异常处理,返回校验失败具体信息
问题 使用@RequestBody接收一个json数据的时候,如果传入的参数不符合条件,就会直接返回400的error page. 但究竟是为什么会400并没有抛出来.这对大量参数字段的我们来说,排错 ...
- SpringMVC关于ajax提交400错误(后台获取为null)
400错误有三种情况 1:请求的数据量过大,不过这种情况一般很少见. 2:请求的data参数有误,确保每一个参数都能请求到. 注释:之前小白出现400错误,后台获取参数为null是因为第三种情况,经过 ...
- Springmvc ajax请求400
转载做记录 传JSON对象 前端 function test () { var param = {username : "yitop"}; $.ajax({ timeout : 2 ...
- SpringBoot RequestBody ajax提交对象
前端实现: var student = { "name":1, "age":2, "score":3 }; $.ajax({ url:&qu ...
随机推荐
- javascript中(function($){...})(jQuery)写法是什么意思
这里实际上是匿名函数function(arg){...}这就定义了一个匿名函数,参数为arg 而调用函数 时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:(functi ...
- 自动化测试基础篇--Selenium简单的163邮箱登录实例
摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...
- 简单易懂的程序语言入门小册子(1.5):基于文本替换的解释器,递归定义与lambda演算的一些额外说明
这一篇接在第一篇lambda演算的后面.讲讲一些数学知识. 经常有些看似很容易理解的东西,一旦要描述得准确无误,就会变得极为麻烦. 软件工程里也有类似情况:20%的代码实现了核心功能,剩下80%的代码 ...
- March 10th, 2018 Week 10th Saturday
All good things must come to an end. 好景无常. Love is when the other person's happiness is more importa ...
- 数组长度为len,数组元素的范围是0到len-1,找出数组的重复元素
public static int findDuplicate(int[] nums) { int len = nums.length; //注意这里的for循环写法,在交换元素后,i没有增加,还要继 ...
- UVA1601-The Morning after Halloween(双向BFS)
Problem UVA1601-The Morning after Halloween Accept: 289 Submit: 3136 Time Limit: 12000 mSec Problem ...
- 关于.NET Web API InputStream接收不了数据的问题
问题描述:1.网站向WebApi(以下简称Api) Post数据: 2.Api的过滤器先处理验证,通过HttpContext.Current.Request.InputStream获取网站Post过来 ...
- js 常用的比较排序算法总结
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 一直很惧怕算法,总是感觉特别伤脑子,因此至今为止,几种基本的排序算法一直都不是很清楚, ...
- P2708 硬币翻转(简单模拟)
题意:弱鸡,其实题意是1到i都变化.然后把所有的硬币都变到正面. 简单的模拟: 思路:本质就是记录相邻字符的有几组不同,比如11010,则就有3组不同,但是,这样变化出来的字符串是00000,所以需要 ...
- 一、springBoot简介与环境搭建
前言:学习计划 1.springBoot环境搭建 2.springBoot入门 3.srpingBoot整合Mybatis 4.springBoot整合Redis,Redis集群 5.springBo ...