2

我有一个这样的对象:

var queryObject= {
      name: 'Shwetanka',
      subjects: ['Mathematics', 'Physics', 'Computers'],
      stream: 'science'
    };

当我使用它创建查询字符串时,$.param(queryObject)我将其作为查询字符串:

name=Shwetanka&subjects%5B%5D=Mathematics&subjects%5B%5D=Physics&subjects%5B%5D=Computers&stream=science

预期的:name=Shwetanka&subjects=Mathematics&subjects=Physics&subjects=Computers&stream=science

如何避免[]在查询字符串中为同名参数添加方法。在后端,我使用struts2来读取参数。

4

2 回答 2

4

我找到了解决方案。我只需要在$.param(queryObject, true). 这会生成我想要的查询字符串。

于 2012-09-24T11:19:33.363 回答
0

当我们在表单中有同名的字段并通过 提交时GET/POST,它必然会作为同名的参数数组发送。服务器会期望这样的值。所以,即使你以某种方式删除它[],它也不再是一个数组,服务器只会得到一个值。设计 jQuery param 方法时,考虑到了同样的事情。查看http://api.jquery.com/jQuery.param/中的示例。

于 2012-09-24T10:23:53.577 回答