1.问题
今天通过
jquery ajax
给后台传数据,数据是jsonarry
中保存jsonObject
,最后再用JSON.stringify()
转换为字符串,但是后台接收不到参数。
代码如下:
var jsonArry = []; //json 数组
var title = "标题";
$("#id").each(function(){
var jsonObject = {}; //json 对象
jsonObject .name = $(this).find("input:eq(0)").val();
jsonObject .age= $(this).find("input:eq(1)").val();
jsonArry.push(jsonObject );
}
var imgParam = JSON.stringify(jsonArry);
$.ajax({
url:"/manager/***", //自己url
type:"post",
data:{
imgs:imgParam,
title:title
},
dataType:'json',
success:function(data){
}
});
2.问题解决
1.contentType: “application/json;charset=UTF-8”
2.processData: false
3.data: stringify(aObject)
添加如上参数
如下:
var jsonArry = [];
var title = "标题";
$("#id").each(function(){
var jsonObject = {};
jsonObject .name = $(this).find("input:eq(0)").val();
jsonObject .age= $(this).find("input:eq(1)").val();
jsonArry.push(jsonObject );
}
var imgParam = JSON.stringify(jsonArry);
$.ajax({
url:"/manager/***", //自己url
type:"post",
data:JSON.stringify({
imgs:imgParam,
title:title
}),
dataType:'json',
contentType: "application/json;charset=UTF-8",
processData: false,
success:function(data){
}
});
3.问题分析
数据传输中的格式化和序列化问题
4.补充
- contentType 默认值:“application/x-www-form-urlencoded; charset=UTF-8”
- processData 默认为false,当设置为true的时候,jquery ajax 提交的时候不会序列化 data,而是直接使用data。