@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的问题相关推荐

  1. 关于: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,一直找不到原 ...

  2. SpringMVC @RequestBody接收Json对象字符串

    以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一 ...

  3. Ajax传JSON对象报错:JSON parse error: Unrecognized token ‘ids‘: was expecting (‘true‘, ‘false‘ or ‘null‘);

    org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized t ...

  4. 把执行结果转成json对象报错_给Hangfire的webjob增加callback和动态判断返回结果功能设计...

    背景介绍 通常业务中需要用到定时执行功能,我用hangfire搭建了一个调度服务,这个调度服务是独立于业务逻辑的,具体可以参考文章:https://github.com/yuzd/Hangfire.H ...

  5. 把执行结果转成json对象报错_JSONObject获取值后为一个对象,将对象转为JSONObject时报错...

    将json字符串转化成List>对象 Map map = new HashMap(); map.put("key1", "value1"); map.pu ...

  6. 把执行结果转成json对象报错_于一次JSON格式错误 之 手把手带你走一波FastJSON将对象转成JSON字符串流程...

    一.前言 最近老大说要新增一个试用广告的功能,我巴拉巴拉的从之前推送广告那里将代码cv过来,然后跟老大说搞定了!过一会老大说返回的json格式不对!于是乎我瞧了瞧: { "adsArea1& ...

  7. 把执行结果转成json对象报错_关于JSON转换成对象 报错LinkedHashMap不能直接转成对象...

    /** * 用于ajax请求,返回非list的的包装类 * @author dev4 * */ public class ObjectResult implements Serializable{ / ...

  8. Java解析JSON时,new JSONObject(这儿写json字符串)报错问题

    在获取json字符串后Java使用api创建json对象报错,查阅资料解决该问题: 问题原因:net.sf.json.jsonobject 没有 new JSONObject(String)的构造方法 ...

  9. SpringMVC过程中@RequestBody接收Json的问题 总是报415

    在SpringMVC中用@RequestBody接收Json的问题,总是报415,经过一翻查找 前台js的post: var postdata = '{"title":" ...

最新文章

  1. Zend Framework中,执行自定义sql语句
  2. 百度步行导航加poi搜索android,【百度地图】带地图显示控件、导航控件、POI查找控件...
  3. OpenCV中对数组(矩阵)的常用操作
  4. 在使用SPSite对象时容易发生内存泄漏
  5. 阿里云asp主机 后台登录一直提示验证码错误_拖欠阿里云一分钱,结果?
  6. C# 使用 Task 替换 ThreadPool ,异步监测所有线程(任务)是否全部执行完毕
  7. MP4-M3U8在线P2P加速视频播放器PHP源码
  8. 常用公差配合表图_机械密封零件的公差配合与技术要求
  9. 2019当今互联网赚钱的六大方式,赠送给迷茫的网赚新手
  10. VGA驱动实现并下板EGO1
  11. C语言中EOF是什么意思?
  12. Chives 集群收割机图文说明
  13. 软件工程实践2018第六次作业——现场UML作图
  14. 闰年 判断的两种方式
  15. 计算机图形几何算法详解勘误
  16. JS第二次授课及字节跳动2017秋招前端工程师笔试试卷涉及知识点
  17. pdcch加扰_一种基站/终端及其PDCCH加扰/解扰的方法和装置_2014104470078_权利要求书_专利查询_专利网_钻瓜专利网...
  18. 已解决org.springframework.beans.factory.UnsatisfiedDependencyException org.springframework.beans.factor
  19. 优秀产品经理所需具备的7种能力
  20. JAVA常用工具类-【5】FFMPEG转换、分割、合并音频

热门文章

  1. linux解析主机域名失败,centos无法解析主机域名
  2. Profinet相关通讯协议分布式 I /O 的缩略语和符合(中英文描述)
  3. java stringtokenizer_Java中的StringTokenizer类的使用方法
  4. 海康API——获取监控点预览取流URL,获取的rtmp流不能播放
  5. linux 查看pid 程序,linux 查看pid
  6. 识花君:一款利用人工智能识别花草的小程序
  7. Spring中html字符编解码
  8. 样本量计算PASS软件提高临床研究可靠性的利器
  9. python画树林_Python数据可视化-支付宝蚂蚁森林能量收取记录
  10. mapreduce编程流程