我正在尝试将表单发送到 Controller 。 jQuery文档说.serializeArray()应该发送一个json数组,而.serialize()应该创建一个查询字符串。

但是,当我尝试使用IE9 F12模式进行检查时,在两种情况下,它看起来都像是查询字符串。我打过哪个电话...

我想念什么?

最佳答案

serializeArray创建一个数组(而不是一个“json数组”-没有这样的东西);您可以使用console.log($("#myform").serializeArray())对此进行测试。另一方面,serialize创建一个查询字符串,该字符串应作为HTTP请求的一部分。两种表示形式是等效的,即使用适当的代码,您可以毫无歧义地将一个转换为另一个。

两种版本均可用的原因是,当您只想发出HTTP请求(将结果放入查询字符串中)时,serialize更加方便,而如果您想自己处理结果,则serializeArray更加方便。

jQuery的AJAX方法不在乎您是否给它们一个,因为它们检测到参数的类型并将其转换为查询字符串(如果尚未输入),因此,从外部观察者发出的请求无法分辨出参数的原始格式。

关于jquery - .serialize()和.serializeArray()有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10430502/

10-09 10:10