function bar() {
$.ajax("jquerytest.html", {
data : {
choices : [ "a", "b", "c" ]
}
});
}
这个方法调用以后,在浏览器控制台里,发现提交的url是jquerytest.html?choices%5B%5D=a&choices%5B%5D=b&choices%5B%5D=c,
这是因为在ajax发送请求之前,会调用jQuery.param()把data转换成字符串,choices是个数组,在jquery 1.4以后,就变成了choices%5B%5D=a&choices%5B%5D=b&choices%5B%5D=c的样子.
但是这样在后台就找不到"choices"这个请求参数了.
不过可以用traditional这个参数控制一下.
function bar() {
$.ajax("jquerytest.html", {
data : {
choices : [ "a", "b", "c" ]
},
traditional : true
});
}
url终于变成了jquerytest.html?choices=a&choices=b&choices=c
本文介绍使用jQuery的AJAX方法时如何通过设置traditional参数来控制数组形式的数据提交方式,避免因默认序列化方式导致后端无法正确解析的问题。
669

被折叠的 条评论
为什么被折叠?



