ajax enctype设置,form设置enctype属性为'application/json'不起作用

由于项目中需要向后台传复杂的json数据处理完然后跳转,大家的做法是用ajax提交数据然后在用location.href跳转,但是这样做需要写两个controller,正好今天百度看了可以设置form的enctype属性为'application/json'就可以发送json数据,下面是网上的事例:

// 生成的Json数据是

{

"pet": [

{

"species": "Dahut"

, "name": "Hypatia"

}

, {

"species": "Felis Stultus"

, "name": "Billie"

}

]

}

下面是我自己的代码实现将json转换为隐藏表单form表单提交:

function postForm(url, params) {

//使用递归遍历

function iter(inputName, obj, resMap) {

for (key in obj) {

if (obj[key] && typeof obj[key] === 'object') {

if (inputName) {

iter(inputName + "[" + key + "]", obj[key], resMap);

} else {

iter(key, obj[key], resMap);

}

} else {

resMap[inputName + "[" + key + "]"] = obj[key];

}

}

}

var temp = document.createElement("form");

temp.action = url;

temp.method = "post";

temp.style.display = "none";

temp.enctype = "application/json";

var resList = {};

iter('',params,resList);//遍历数据结构

for (key in resList) {

var hideInput = document.createElement("input");

hideInput.type = "hidden";

hideInput.name = key;

hideInput.value = resList[key];

temp.appendChild(hideInput);

}

document.body.appendChild(temp);

temp.submit();

}

测试数据

var dd = {

user:{

name:'小明',

id:34

},

project:[{

yuwen:{name:'语文',scre:444}},{shuxue:{name:'数学',scre:33}}

]

};

postForm('test',dd)

//生成的表单

生成的数据跟网上的一样,可以提交的时候浏览器显示

Content-Type:application/x-www-form-urlencoded,并且后台也没有取到理想的json数据

bVX6jF?w=539&h=179

这是后台数据

有哪位大神知道怎么解决吗?求教