[前端開發]form-data和x-www-form-urlencoded的區別
- 2020 年 6 月 2 日
- 筆記
- 在後台開發時,之前做了文件的上傳,用的是form-data,但並不知其區別。今天遇到了req.body為空的情況,切換成了x-www-form-urlencoded解決
form-data
就是http請求中的multioart/form-data
,它會將表單的數據處理為一條消息,以標籤為單元,用分隔符分開。
- 既可以上傳鍵值對,也可以上傳文件,當上傳的欄位是文件時,會有Content-Type來說明是文件類型,Content-Disposition來說明欄位的資訊。
x-www-form-urlencoded
就是application/x-www-form-urlencoded
會將表單中的數據轉換為鍵值,用&分隔
- 當form的action為get時,瀏覽器用x-www-form-urlencoded的編碼方式,將表單數據編碼為
(name1=value1&name2=value2…),然後把這個字元串append到url後面,用?分隔,跳轉到這個新的url。 - 當form的action為post時,瀏覽器將form數據封裝到http body中,然後發送到server。
這個格式不能提交文件。
- 單post鍵值時,用form-data獲取的req.body為空對象