我正在尝试将表单发送给控制器。 jQuery文档说.serializeArray()应该发送一个json数组,而.serialize()应该创建一个查询字符串。
但是,当我尝试并使用IE9 F12模式进行检查时,它们看起来像一个查询字符串,在这两种情况下。有人叫我做…
我失踪了什么
解决方法
serializeArray创建一个数组(不是一个“json数组” – 没有这样的东西);你可以用console.log($(“#myform”)。serializeArray())来测试这个。另一方面,serialize创建一个查询字符串,该字符串是HTTP请求的一部分。在使用适当代码的情况下,两个表示都是等效的,您可以将其转换为另一个,而不会有歧义。
两个版本可用的原因是,当您只想要发出HTTP请求(只是将结果放在查询字符串中)时,serialize更方便,而如果要自己处理结果,serializeArray更方便。
jQuery的AJAX方法不关心如果你给他们一个或另一个,因为它们检测到参数的类型,并将其转换成一个查询字符串,如果它不是一个已经存在,所以请求在观察者之外是不能告诉原始格式的参数。