将对象作为调用传递data
时ajax
,我得到了一些意想不到的结果。出于某种原因,如果参数名称的值是数组,则 jQuery 会在我的参数名称中添加方括号。例如...
var obj =
{
name: "John Doe",
courses: [ 1, 2, 4 ]
};
...变成name=John+Doe&courses[]=1&courses[]=2&courses[]=4
而不是name=John+Doe&courses=1&courses=2&courses=4
.
为什么jQuery要添加方括号?
这是一个工作示例:http: //jsfiddle.net/BrHSy/
更新:
我希望上面的示例生成一个类似于此示例中的查询字符串的字符串:
<html>
<head></head>
<body>
<form method="GET">
<input type="hidden" name="name" value="John Doe"/>
<input type="hidden" name="courses" value="1"/>
<input type="hidden" name="courses" value="2"/>
<input type="hidden" name="courses" value="4"/>
<button>Go!</button>
</form>
</body>
</html>
请注意,由表单 (www-form-urlencoded) 生成的查询字符串没有方括号。