异步请求中先后端数据交互时的格式

写在前面的话:
这篇笔记是我学习javaweb开发时,尚未接触spring框架时的笔记,仅用于探究先后端交互时,前端vue+后端servlet手动封装时的数据交互,实际开发时后端使用ssm框架下,其实已经不用过多考虑格式的封装了,下面的内容仅供参考前端

1 后端发送给前端

不管是哪一种写法,不管是哪一种回调函数,服务器那边封装数据都是封装为map集合,而后借助第三方jar包将集合转为字符串型json,最后以IO流传给前端——由于是异步请求,因此都是用IO流这种异步请求的返回方法,所以只能传递字符串。
imagevue

而AXIOS提供的异步请求方法在参数列表接收到的数据都是xmlHttpResponse(响应对象),里面包含了配置信息config、数据data、响应头headers、请求头request、状态码status,实际使用时得从中取出data——这是json格式
异步请求中在回调函数得到的数据是xmlHttpResponse:
imagejava

从响应对象中取到的data是json格式:
imageios

AXIOS的回调函数中拿到的就是xmlHttpRequest对象,若是咱们但愿传给方法体的是json或者其余类型,那么就写一个相似工具类的东西,在方法体开头对xmlHttpRequest对象进行转换(或者说二次封装)web

2 前端发送给后端

解决使用axios发送json后台接收不到的问题_mytac的博客-CSDN博客spring

也是在异步请求中完成数据的发送——经过请求参数,一般都是将一个json对象传过去,若是用了VUE,就是将VUE的data中的某个json对象传过去。
AXIOS会自动的将json对象转为json字符串以便于B/S以前的数据传递。
imagejson

此时后端拿到的依然是请求头HttpServletRequest 而后基于其中包含的type键值对经过switch-case分发数据
imageaxios

进入switch-case对应的函数后,直接使用servlet封装好的方法将数据存到一个实体对象中,再将结果(也是字符串)用IO流返回——由于是异步请求,因此都是用IO流这种异步请求的返回方法
实际上咱们可使用第三方jar包将获取到的json字符串从新转回对象,也能实现下图中的操做,这样咱们就不用写这个servlet封装的工具类了,老师使用这个只是为了让咱们知道第三方jar包实际作的是什么工做。
image后端

相关文章
相关标签/搜索