spring boot ajax 415,解决@RequestBody接收json对象报错415的问题
@RequestBody接收json对象报错415
前端请求:
$.ajax({
url: basePath() + "/index/login.do",
type : "post",
data: JSON.stringify(form),
dataType : "json",
contentType : "application/json;charset=utf8",
success: function (data) {
console.log(data);
},
error: function () {
}
});
后端接收:
@ResponseBody
@RequestMapping(value = "/login",method = RequestMethod.POST,produces = "application/json;charset=utf8")
public JSONObject login(@RequestBody LoginVo loginVo){
JSONObject result = new JSONObject();
UsernamePasswordToken token = new UsernamePasswordToken(loginVo.getUsername(),loginVo.getPassword());
System.out.println(loginVo.isRememberMe());
Subject subject = SecurityUtils.getSubject();
subject.login(token);
if (subject.isAuthenticated()){
result.put("result",true);
}else{
result.put("result",false);
}
return result;
}
前端ajax请求,后端使用@RequestBody接收,报出415请求数据格式错误
错误原因:
springMVC无法读取ajax设置好的dataType并以对应的方式处理请求头,进而无法处理json数据
解决办法:
在maven中引入Jackson相关jar包,并在springMVC的xml中引入相关配置,maven和springMVC的相关代码如下:
maven:
com.fasterxml.jackson.core
jackson-databind
2.9.6
com.fasterxml.jackson.core
jackson-core
2.9.6
com.fasterxml.jackson.core
jackson-annotations
2.9.6
springMVC:
text/html;charset=UTF-8
application/json;charset=UTF-8
text/html;charset=UTF-8
application/json;charset=UTF-8
后端使用@RequestBody接收前端传来的数据
踩坑①
@RequestBody接收json字符串,只能使用post的提交方式
前端直接复制了相似功能页面的js,该页面是使用的get的提交方式
但前端报错500,后端报错提示
2019-09-12 09:17:43.088 ERROR GlobalExceptionHandler : An exception occurs within the system : Required String parameter ‘xxx' is not present
踩坑②
后将.get(URL,data,callback)修改为.post(URL,data,callback);
$.post(URL,data,callback);
必需的 URL 参数规定您希望请求的 URL。
可选的 data 参数规定连同请求发送的数据。
可选的 callback 参数是请求成功后所执行的函数名
但前端继续报错500,后端报错提示
2019-09-12 09:23:15.409 ERROR GlobalExceptionHandler : An exception occurs within the system : Content type ‘application/x-www-form-urlencoded;charset=UTF-8' not supported
踩坑③
后端提示不支持Content type 为'application/x-www-form-urlencoded;charset=UTF-8'的格式,百度查了一下.post(URL,data,callback)只是预配置.ajax调用的快捷方式,并不能修改contentType的类型
所以将$.post方法修改为了&.ajax方法
设置
type: “post”,
url: ctx + url,
data: JSON.stringify(allData),
dataType: “json”,
contentType:“application/json;charset=utf-8”,
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
spring boot ajax 415,解决@RequestBody接收json对象报错415的问题相关推荐
- 关于:js使用$.parseJSON字符串转json对象报错Uncaught SyntaxError- Unexpected token o in JSON at position 1
今天使用js使用$.parseJSON字符串转json对象报错Uncaught SyntaxError- Unexpected token o in JSON at position 1,一直找不到原 ...
- SpringMVC @RequestBody接收Json对象字符串
以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一 ...
- Ajax传JSON对象报错:JSON parse error: Unrecognized token ‘ids‘: was expecting (‘true‘, ‘false‘ or ‘null‘);
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized t ...
- 把执行结果转成json对象报错_给Hangfire的webjob增加callback和动态判断返回结果功能设计...
背景介绍 通常业务中需要用到定时执行功能,我用hangfire搭建了一个调度服务,这个调度服务是独立于业务逻辑的,具体可以参考文章:https://github.com/yuzd/Hangfire.H ...
- 把执行结果转成json对象报错_JSONObject获取值后为一个对象,将对象转为JSONObject时报错...
将json字符串转化成List>对象 Map map = new HashMap(); map.put("key1", "value1"); map.pu ...
- 把执行结果转成json对象报错_于一次JSON格式错误 之 手把手带你走一波FastJSON将对象转成JSON字符串流程...
一.前言 最近老大说要新增一个试用广告的功能,我巴拉巴拉的从之前推送广告那里将代码cv过来,然后跟老大说搞定了!过一会老大说返回的json格式不对!于是乎我瞧了瞧: { "adsArea1& ...
- 把执行结果转成json对象报错_关于JSON转换成对象 报错LinkedHashMap不能直接转成对象...
/** * 用于ajax请求,返回非list的的包装类 * @author dev4 * */ public class ObjectResult implements Serializable{ / ...
- Java解析JSON时,new JSONObject(这儿写json字符串)报错问题
在获取json字符串后Java使用api创建json对象报错,查阅资料解决该问题: 问题原因:net.sf.json.jsonobject 没有 new JSONObject(String)的构造方法 ...
- SpringMVC过程中@RequestBody接收Json的问题 总是报415
在SpringMVC中用@RequestBody接收Json的问题,总是报415,经过一翻查找 前台js的post: var postdata = '{"title":" ...
最新文章
- Zend Framework中,执行自定义sql语句
- 百度步行导航加poi搜索android,【百度地图】带地图显示控件、导航控件、POI查找控件...
- OpenCV中对数组(矩阵)的常用操作
- 在使用SPSite对象时容易发生内存泄漏
- 阿里云asp主机 后台登录一直提示验证码错误_拖欠阿里云一分钱,结果?
- C# 使用 Task 替换 ThreadPool ,异步监测所有线程(任务)是否全部执行完毕
- MP4-M3U8在线P2P加速视频播放器PHP源码
- 常用公差配合表图_机械密封零件的公差配合与技术要求
- 2019当今互联网赚钱的六大方式,赠送给迷茫的网赚新手
- VGA驱动实现并下板EGO1
- C语言中EOF是什么意思?
- Chives 集群收割机图文说明
- 软件工程实践2018第六次作业——现场UML作图
- 闰年 判断的两种方式
- 计算机图形几何算法详解勘误
- JS第二次授课及字节跳动2017秋招前端工程师笔试试卷涉及知识点
- pdcch加扰_一种基站/终端及其PDCCH加扰/解扰的方法和装置_2014104470078_权利要求书_专利查询_专利网_钻瓜专利网...
- 已解决org.springframework.beans.factory.UnsatisfiedDependencyException org.springframework.beans.factor
- 优秀产品经理所需具备的7种能力
- JAVA常用工具类-【5】FFMPEG转换、分割、合并音频
热门文章
- linux解析主机域名失败,centos无法解析主机域名
- Profinet相关通讯协议分布式 I /O 的缩略语和符合(中英文描述)
- java stringtokenizer_Java中的StringTokenizer类的使用方法
- 海康API——获取监控点预览取流URL,获取的rtmp流不能播放
- linux 查看pid 程序,linux 查看pid
- 识花君:一款利用人工智能识别花草的小程序
- Spring中html字符编解码
- 样本量计算PASS软件提高临床研究可靠性的利器
- python画树林_Python数据可视化-支付宝蚂蚁森林能量收取记录
- mapreduce编程流程