前言
原先跟公司後端搭配都是使用 JSON 格式在傳遞資料,直到有一支 API 跟 Google OAuth 牽扯上。總而言之,就是要使用 form-urlencoded 來傳資料,也就會產生 axios 格式轉換問題哩。
JSON 與 x-www-form-urlencoded
form-urlencoded 在表單傳輸是很常見的操作方式,通過 & 、 = 傳遞資訊。JSON 是以陣列物件的形式在傳遞資訊
1 | // x-www-form-urlencoded |
使用套件
套件名稱 : qs (A querystring parser with nesting support)
qs github
qs npm
輸入安裝指令
1 | npm install qs -S |
引入套件
官方有提供 require() 引入方式,可參考官網作法。
本次是以 Vue Cli 來引入套件,在 app.js 加入以下程式碼:
1 | import Qs from 'qs'; |
使用方式
如果 json 格式只有一層的話就直接轉換即可,若是有多層的情況,則需要先使用 JSON.stringify() 轉換後再使用 qs 轉換。
1 | const obj_1 = { |
轉換好之後,就可以使用 axios 送出這份 x-www-form-urlencoded 的資料囉。
結尾
我想應該會越來越多 API 都使用 json 格式傳送資料,form-urlencoded 格式也許會漸漸式微吧。