vue+axios+qs序列化 “三步解析”【含demo实例】- 代码篇


qs序列化:是什么?为什么?怎么办?实例截图参考


一、(简单了解) · 三步解析

(what、why、how)

  • 序列化是一种用来处理对象流的机制:

    所谓对象流就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。

  • 序列化是为了解决在对对象流进行读写操作时所引发的问题。

  • 对象、文件、数据,有许多不同的格式,很难统一传输和保存

    序列化以后就都是字节流了,无论原来是什么东西,都能变成一样的东西,就可以进行通用的格式传输或保存,传输结束以后,要再次使用,就进行反序列化还原,这样对象还是对象,文件还是文件

  • 序列化的主要作用:

    使数据被统一成统一个格式, 从而方便跨程序, 跨平台等使用. 但因为实体类通常都会考虑WebService传输, 所以通常都声明可序列化以支持WebService

  • 什么时候使用序列化:
  1. 对象序列化可以实现分布式对象。
    主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。
  2. java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。
  • 序列化的实现:
    将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流;

为什么一定要qs.stringify序列化?
  • 我使用Jqueryajax的时候,就直接在data区域写入参对象就行啊
其实也不一定非要qs.stringify序列化:
  • 如果入参的格式不是js对象,而是就像我们写好的 uid=cs11&pwd=123这样的字符串拼接格式,那么就不用再序列化操作。
主要缘故在于:

axios内部会自动对Object的入参进行转换,转换成json字符串,其实就是JSON.stringify的操作,同时,会指定Content-typeapplicaltion/json

后台是按照application/x-ww-form-urlencoder方式在接口中进行数据获取和处理的,这样的话,后台处理就会出问题。

同样的,如果后台的接口就是处理Content-Type=application/json类型的入参,那么根本就不用再使用qs序列化了,直接正常post即可。如果强制使用了,后台接口在处理的时候会获取失败。

区间内容节选自:@

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草巾冒小子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值