Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery$.ajax方法只从我的序列化数组中发送一项_Javascript_Jquery_Arrays_Tomcat_Post - Fatal编程技术网

Javascript jQuery$.ajax方法只从我的序列化数组中发送一项

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); 所有

我的tomcat日志只显示传入的一项

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