我有一个这样的对象:
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
如何通过查询字符串中的方法为同名的params添加[]
。在后端我使用struts2来读取参数。
答案 0 :(得分:4)
我找到了解决方案。我只需要在$.param(queryObject, true)
中传递'traditional = true'。这会生成我想要的查询字符串。
答案 1 :(得分:0)
当我们在表单中有相同名称的字段并且通过GET/POST
提交时,它必须作为具有相同名称的params数组发送。
并且服务器将期望这样的值。所以,即使你以某种方式删除[]
,它也不再是一个数组,服务器只能得到一个值。
设计了jQuery param方法,同样考虑到了同样的事情。
查看http://api.jquery.com/jQuery.param/中的示例。