異步請求中先後端數據交互時的格式

寫在前面的話:
這篇筆記是我學習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後端

相關文章
相關標籤/搜索