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 ...
随机推荐
- Ubuntu/centos/redhat/SUSE sipp安装(带rtp支持,3.5.1版本)
1.ubuntu 12.04 apt-get install ncurses-dev apt-get install libpcap-dev ./configure --with-pcap make ...
- vue项目中引入animate.css和wow.js
本文转自:https://blog.csdn.net/liyunkun888/article/details/85003152 https://www.zhuimengzhu.com/content/ ...
- SAP CRM和C4C的内容管理(Content Management)
SAP CRM内容管理 SAP CRM使用Attachments这个UI给用户提供内容管理的功能.通过新建按钮可以上传本地文档到CRM系统: 该内容管理支持简单的版本管理功能,用户可点击Check O ...
- 把app(apk和ipa文件)安装包放在服务器上供用户下方法
怎么把app(apk和ipa文件)安装包放在服务器上供用户下载? IIS服务器网站不能下载.apk文件的原因:IIS的默认MIME类型中没有.apk文件,所以无法下载.解决办法:给.apk格式文件添加 ...
- set 集合的函数调用
方法 意义 S.add(e) 在集合中添加一个新的元素e:如果元素已经存在,则不添加 S.remove(e) 从集合中删除一个元素,如果元素不存在于集合中,则会产生一个KeyError错误 S.dis ...
- 【Day4】1.JsonPath使用案例
import json python_data = [ { 'username': 'normal', 'vip': True, }, { 'username':None, 'vip':False } ...
- win10家庭版设置移动热点出现“我们无法设置移动热点”
寝室wifi卡到爆炸, 买了一个360随身WiFi,可是360随身WiFi烧坏了 ...然后我就一个星期没玩游戏了 今天本来想开电脑的wifi试一试,结果发现无法设置热点 纳闷了 百度一下,发现都 ...
- Maven编译指定(跳过)Module
今天在项目里新添加了一个Module, 但是在jenkins编译的时候会将这个Module也编译, 问题是这个Module根本不需要编译而且巨慢. 因此我只想编译指定模块 ModuleA以及它依赖的必 ...
- github仓库管理项目
一,建立本地git仓库 首先,git要求使用者必须提供自己的身份标识,为此我们需要在git bash中执行以下命令: git config --global user.name 'aa.Tessst ...
- 《黑白团团队》第九次团队作业:Beta冲刺第一天
项目 内容 作业课程地址 任课教师首页链接 作业要求 团队项目 填写团队名称 黑白团团队 填写具体目标 认真负责,完成项目 团队项目Github仓库地址链接. 第一天 日期:2019/6/24 1.1 ...