get和post以及表单提交时为什么要序列化

目录

表单提交数据的时候为什么要用序列化

get和post

  1. get是将明文数据追加到url后面提交,post是将密文数据封装到请求体。无论是submit还是ajax都是这样的。
  2. submit提交的数据属于默认提价方式,所以submit的get和post都是经过序列化后的可以被直接识别,并且序列化后的格式为中间加&的格式(注意这并不是序列化后的唯一标志,序列化的功能并不只如此)。
  3. 序列化后的数据能够被后端直接识别。把表单中所有的键值对的数据变成后台能够识别的键值对方式。没有序列过后的数据是不能识别的,有重复的或者不合法的不合理的数据。所以必须序列后才能提交数据。
  4. 直接把数据跟在url后面的数据是受到url长度限制的。get提交方式将数据封装在url后面post提交数据封装在请求体中并不是一成不变的,可以后面设置改变的。

ajax提交时的序列化

  1. ajax提交表单中的数据默认是没有序列化的所以要序列化(get和post都没有)。序列化分为两种方式。分别是serialize()和serializeArray() 。
  2. serialize()序列化为中间加&的方式。序列化并不是只在中间加个&就可以了,还有进行数据整理等功能。这种序列化后的格式就是和submit提交的同一种方式,可以直接接收了。
  3. serializeArray() 序列化成json的格式。这种序列化后的数据要在接收方加上@Requestbody之后才能和submit那种默认提交方式一样接收数据。

猜你喜欢

转载自www.cnblogs.com/macht/p/11622569.html