Ajax传递复杂对象报415
时间:2019-11-19
本文章向大家介绍Ajax传递复杂对象报415,主要包括Ajax传递复杂对象报415使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/
1、问题描述
使用ajax进行post请求,参数为复杂对象,对象属性有数组,数组元素为对象。这种情况会报415错误。
ajax片段代码
1 function test(){ 2 var url = "/api/demoController/add"; 3 var params = { 4 "faceInfoList": [{ 5 "faceId": "1", 6 "faceName": "leftFace" 7 }, { 8 "faceId": "2", 9 "faceName": "rightFace" 10 }], 11 "personId": "123" 12 } 13 $.ajax({ 14 url:"/api/demoController/add", 15 data:params, 16 type:"post", 17 dataType:"json", 18 async:true, 19 success:function(res){ 20 if(res.success || res.code == 200){ 21 console.log(res); 22 }else{ 23 console.log(res); 24 } 25 }, 26 error:function(res){ 27 console.log(res); 28 }, 29 }); 30 }
2、解决方案
ajax参数改为:data:JSON.stringify(params)
改了之后会报400,查了之后还需要增加参数。
增加一行参数:contentType: "application/json;charset=UTF-8",
修改后完整的代码为:
1 function test(){ 2 var url = "/api/demoController/add"; 3 var params = { 4 "faceInfoList": [{ 5 "faceId": "1", 6 "faceName": "leftFace" 7 }, { 8 "faceId": "2", 9 "faceName": "rightFace" 10 }], 11 "personId": "123" 12 } 13 $.ajax({ 14 url:"/api/demoController/add", 15 data:JSON.stringify(params), 16 type:"post", 17 dataType:"json", 18 contentType: "application/json;charset=UTF-8", 19 async:true, 20 success:function(res){ 21 if(res.success || res.code == 200){ 22 console.log(res); 23 }else{ 24 console.log(res); 25 } 26 }, 27 error:function(res){ 28 console.log(res); 29 }, 30 }); 31 }
Java后台代码为:
1 @RequestMapping(value = "/add", method = {RequestMethod.POST}, consumes = MediaType.APPLICATION_JSON_VALUE) 2 @ResponseBody 3 public String add(@RequestBody InfoReq vo) throws IOException { 4 System.out.println(vo); 5 return "Success"; 6 }
3、参考网站
原文地址:https://www.cnblogs.com/mao2080/p/11891917.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python 技术篇-PyQt5动画功能演示,组件移动、尺寸改变动画演示
- 搭建k8s高可用集群 - 二进制方式
- DeepWalk:图网络与NLP的巧妙融合
- 基于kubeadm搭建k8s高可用集群
- 扑克牌例题与Collections工具类
- 快速了解Kubernetes
- PyQt5 技巧篇-按钮竖排显示方法,Qt Designer设置按钮竖排显示。
- Kafka集群监控、安全机制与最佳实践
- PyQt5 技术篇-设置输入框的placeholder方法,Qt Designer设置Line Edit、Text Edit编辑框的placeholder
- Kafka集群搭建及必知必会
- Python 技术篇-打开指定文件夹、目录、路径方法,运行指定文件演示
- Python 技巧篇-同一个方法多次引用不同效果功能实现,可选参数设置方法
- Kafka核心API——Connect API
- PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。
- Nginx部署Vue项目以及解决刷新页面404