Ajax传递复杂对象报415
1、问题描述
使用ajax进行post请求,参数为复杂对象,对象属性有数组,数组元素为对象。这种情况会报415错误。
ajax片段代码
function test(){
var url = "/api/demoController/add";
var params = {
"faceInfoList": [{
"faceId": "1",
"faceName": "leftFace"
}, {
"faceId": "2",
"faceName": "rightFace"
}],
"personId": "123"
}
$.ajax({
url:"/api/demoController/add",
data:params,
type:"post",
dataType:"json",
async:true,
success:function(res){
if(res.success || res.code == 200){
console.log(res);
}else{
console.log(res);
}
},
error:function(res){
console.log(res);
},
});
}
2、解决方案
增加一行参数:contentType: "application/json;charset=UTF-8",
改了之后会报400,查了之后还需要增加参数。
ajax参数改为:data:JSON.stringify(params)
修改后完整的代码为:
function test(){
var url = "/api/demoController/add";
var params = {
"faceInfoList": [{
"faceId": "1",
"faceName": "leftFace"
}, {
"faceId": "2",
"faceName": "rightFace"
}],
"personId": "123"
}
$.ajax({
url:"/api/demoController/add",
data:JSON.stringify(params),
type:"post",
dataType:"json",
contentType: "application/json;charset=UTF-8",
async:true,
success:function(res){
if(res.success || res.code == 200){
console.log(res);
}else{
console.log(res);
}
},
error:function(res){
console.log(res);
},
});
}
Java后台代码为:
@RequestMapping(value = "/add", method = {RequestMethod.POST}, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public String add(@RequestBody InfoReq vo) throws IOException {
System.out.println(vo.toString());
return "Success";
}
3、参考网站
Ajax传递复杂对象报415的更多相关文章
- jq ajax传递json对象到服务端及contentType的用法
目录 0.一般情况下,通过键值对的方式将参数传递到服务端 1.ajax 传递复杂json对象到服务端 2.content-Type 对asp.net mvc项目的重要性 0.一般情况下,通过键值对的方 ...
- ajax 传递JSON对象参数
https://msdn.microsoft.com/zh-cn/library/cc836466(v=vs.94).aspx https://msdn.microsoft.com/zh-cn/lib ...
- jquery ajax 传递js对象到后台
第一种:通过struts接收 (function ($) { $("#btnsave").click(function () { var params = {}; params[& ...
- Ajax传递List对象到前台展示问题遇到的坑
后台Json转换 后台传递的List对象,如果对象是实体类,实体类和另一个表关联,就可能会出现以下错误 org.hibernate.LazyInitializationException: faile ...
- ajax传递数组、form表单提交对象数组
在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致,那么传值就没有什么问题.不过,在前几天的开发 ...
- JS AJAX传递List数组到后台(对象)
今天在写代码的时候,碰到的问题,百度了一下,发现原来AJAX传递List数据是可以的,之前还一直用JSON序列化(new Array()数组设置)进行传值的. var _list = {}; //等价 ...
- springMVC通过ajax传递参数list对象或传递数组对象到后台
springMVC通过ajax传递参数list对象或传递数组对象到后台 环境: 前台传递参数到后台 前台使用ajax 后台使用springMVC 传递的参数是N多个对象 JSON对象和JSON字符串 ...
- ajax传递参数给springmvc总结[转]
通过ajax传递参数给springmvc,经常会因为 参数类型太复杂,或者根本不知道springmvc都支持哪些类型转换,导致后台接收出现各种问题.如果书写格式没有问题仍然接受参数报错,大部分是因为s ...
- jsp采用ajax传递数组给后台controller并遍历
ajax传递数组,期间出各种各样的问题,那叫一个头疼,网上各种查,都没有解决,最终摸索摸索加借鉴搞定,不多说,上代码 /* 复选框选定部分 */ $("#delete").clic ...
随机推荐
- 【原创】大叔经验分享(83)impala执行多个select distinct
impala在一个select中执行多个count distinct时会报错,比如执行 select key, count(distinct column_a), count(distinct col ...
- Innosetup设置控制面版中的名称显示和图标
//设置控制面板中程序图标UninstallDisplayIcon={app}\logo.ico //设置控制面板中程序的名称Uninstallable=yesUninstallDisplayName ...
- 【Git】五、远程仓库
前面4节将的都是本地的git操作,这节开始讲合并到本地分支后,如何与远程仓库做交互 -------------------------------- 提要 //生成本地ssh密钥 $ ssh-keyg ...
- css 之calc无效踩坑
踩坑: 1. height:calc(100vh-60); 无效 2.height:calc(100vh-60px); 无效 3.height:calc(100vh - 60px); 终于起效 总 ...
- web开发:javascript动画
一.鼠标事件 二.js盒模型 三.鼠标拖拽 四.键盘事件 五.其他时间应用 六.定时器 七.定时器案例 八.随机数 一.鼠标事件 <!DOCTYPE html> <html> ...
- 008.建立主从表(sql实例)
CREATE TABLE info(snumb int primary key identity(1,1),sname varchar(20),sex bit,birthday datetime ch ...
- CodeForces - 1221E Game With String 分类讨论
首先分析A能获胜的情况 A能获胜 当且仅当A拿完后所有剩下的都<b 所以一旦存在一个大小为X的 且 b<=X<a 则必是后手赢 当X为 a<=x<2*b 的时候 无论A或 ...
- Android利用json进行网络解析
必须单开一个线程,android界面的主线程不会负责通信模块
- 第一节:python读取excel文件
写在前面: (1)Excel中数字格式int(1),读出的是float(1.0)类型,导致传参时造成不同,强制转换时,int(str(1.0))在2.7版本又会报错ValueError: invali ...
- Zabbix trigger(触发器)设置
设置一个监控项–进站包数,当进站包数>50触发器报警. 先设置一个进站包数的监控项(item):