您好,欢迎访问一九零五行业门户网

jquery ajax 传递数组到后台失败的问题

起初我认为traditional:true,可有可无,但是后来不用traditional的时候,发现后台无法获取selectusers的值,那么可以肯定的是traditional默认值是false.
当提交的参数是数组( {selectusers:[value,value,value]} ),
如果是false的话,则提交时会是selectusers[]=value&selectusers[]=value
name nihao
list[] [3]
0 x
1 y
2 z
ckee o
m2[name] zzzzz
m2[list][] [3]
0 x1
1 y1
2 z1
m2[ckee] o1
如果设置成true,则提交时会是selectusers=value&selectusers=value
name nihao
list [3]
0 x
1 y
2 z
ckee o
m2 [object+object]
这样后台就能用string[] ids=request.getparametervalues(selectusers); 获取到值。
官方文档的解释如下:
traditional 
类型:boolean
如果你想要用传统的方式来序列化数据,那么就设置为 true。
set this to true if you wish to use the traditional style of param serialization
前台js  
var obj2 = { "name": "nihao", "list": ["x", "y", "z"], "ckee": "o", "m2": { "name": "zzzzz", "list": ["x1", "y1", "z1"], "ckee": "o1" } } $.ajax({ type: "post", url: "/home/submitform", data: obj2, datatype: "text", async: false, traditional: true, success: function (data) { var rows = data.rows; } }); $.ajax({ type: "post", url: "/home/submitform", data: obj2, datatype: "text", async: false, traditional: false, success: function (data) { var rows = data.rows; } });
后台
[httppost] public string submitform(mymode request) { if (request != null) { // } return "操作成功。"; }
以上就是jquery ajax 传递数组到后台失败的问题的详细内容。
其它类似信息

推荐信息