Javascript jQuery$.ajax方法只从我的序列化数组中发送一项
我的tomcat日志只显示传入的一项Javascript jQuery$.ajax方法只从我的序列化数组中发送一项,javascript,jquery,arrays,tomcat,post,Javascript,Jquery,Arrays,Tomcat,Post,我的tomcat日志只显示传入的一项 var itemArr = ["someItem", "someItem2", "someItem3"]; $.ajax({ type: "POST", url: "myServlet", data: $.param({item: itemArr}) }); 该数组包含大约20个元素 如果我这样做: var params = $.param({item: itemArr}); alert(params); 所有
var itemArr = ["someItem", "someItem2", "someItem3"];
$.ajax({
type: "POST",
url: "myServlet",
data: $.param({item: itemArr})
});
该数组包含大约20个元素
如果我这样做:
var params = $.param({item: itemArr});
alert(params);
所有值的格式为item=someitem&item=someitem2
。等等
但是ajax post只输出数组中的第一项。我希望它们都在请求中传递给服务器
任何帮助都将不胜感激
编辑:
使用1.3.2版也尝试了1.4.4版-同样的问题我认为您的$.param()
调用应该是这样的:
var itemArr = ["someItem", "someItem2", "someItem3"];
$.ajax({
type: "POST",
url: "myServlet",
data: $.param(itemArr)
});
编辑:尼克在那里发现了一些东西
从jQuery.param()
:
此处演示:哦,对了,我错过了第一句话,是的,您将只获得一个传递到服务器的项目,它应该是一个数组 这是firebug给我的当我提出请求时
item[] someItem
item[] someItem2
item[] someItem3
您使用的是哪个版本的jQuery?这是因为(我认为)在服务器端,任何后续的“项”都会覆盖以前的“项”。您似乎正在使用jQuery 1.3.2或更低版本。这可能是jQuery人员决定改变
$.param
工作方式的原因之一。我建议你升级。另外,您使用的服务器语言是什么?@karim79:我不认为项目覆盖以前的项目是一个问题,它应该被解释为一个数组。@davidbuttar-我想这样认为,但OP说服务器上只捕获了一个值(据我了解)@karim79:tomcat中显示的项目是数组中的第一个项目,几乎就好像“&”停止了进一步显示的项目。至于服务器端语言-Java.com,这是对+1-Nice编辑的后续。不过,“叔叔-你必须考虑升级:”好的,所以我尝试了你的最后一个编辑(解码输出)没有变化仍然是同样的问题。也尝试过1.4.4,但仍然存在相同的问题。很困惑为什么它只发送第一个项目。这可能和tomcat有关吗?
var itemArr = ["someItem", "someItem2", "someItem3"];
var paramed = decodeURIComponent($.param({ 'item[]': itemArr }));
item[] someItem
item[] someItem2
item[] someItem3