使用URLSearchParams處理 fetch 傳送的資料

泥猴桃發表於2018-12-19

眾所周知,前端開發工作中肯定要涉及到和後端的互動,現在最常用到的就是 jq 的ajax 和 axios ,fetch 這三個。最近在用ant design pro 搞一個後臺。裡邊用到的是fetch。
使用這些外掛的時候我們經常會碰到一些問題,比如說傳過去的資料格式不正確。
首先我們來看下jq 的ajax 傳送的一個post 方法請求
在這裡插入圖片描述
然後我們在來看一下 用fetch 發出的一個post 請求
在這裡插入圖片描述
看到這裡,有的小夥伴就要說了,修改下ContentType不就好了,其實不然,即時是修改了ContentType,資料依然不正確:
我這裡把請求頭中的Content-Type 改成了這樣:

 'Content-Type': 'application/x-www-form-urlencoded',

在這裡插入圖片描述
後來經過百度發現說是如果後端是Java 或者php 的話,這種json 物件的格式資料傳過去,後端不好處理,所以前端在傳資料的時候需要處理一下,

使用URLSearchParams來處理引數,URLSearchParams的相容性並不高,所以使用的時候還是要注意(可以考慮使用babel來轉換)

new URLSearchParams(data).toString()

上邊程式碼中的data 就是 我們要傳到後端的json 引數物件!
在這裡插入圖片描述
然後ok
同樣 axios 也可以這樣設定來解決問題

相關文章