[前端開發]form-data和x-www-form-urlencoded的區別

kaba發表於2020-06-02
  • 在後臺開發時,之前做了檔案的上傳,用的是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為空物件

相關文章