起初我认为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 传递数组到后台失败的问题的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号