首頁 >web前端 >js教程 >如何使用 Fetch API 發送表單資料:Multipart/form-data 與 Application/x-www-form-urlencoded?

如何使用 Fetch API 發送表單資料:Multipart/form-data 與 Application/x-www-form-urlencoded?

DDD
DDD原創
2024-11-03 12:51:021095瀏覽

How to Send Form Data with Fetch API: Multipart/form-data vs. Application/x-www-form-urlencoded?

使用Fetch API 發送表單資料

後台

使用Fetch API 發送表單資料時,經常會遇到與編碼資料時使用的內容類型和邊界相關的問題。本文探討了這些問題的本質,並提供了編碼 multipart/form-data 與 application/x-www-form-urlencoded 的解決方案。

FormData 和 multipart/form-data

如 MDN 的 FormData 文件中所提到的,FormData 以 multipart/form-data 格式隱含編碼資料。此格式不適合傳送 Content-Type 為 application/x-www-form-urlencoded 的資料。

application/x-www-form-urlencoded 的解決方案

要將資料編碼為application/x-www-form-urlencoded 格式,您有兩種選擇:

  1. 字串編碼:手動將表單資料編碼為URL 編碼string.
  2. URLSearchParams:URLSearchParams 並初始化物件並向物件其附加每個表單欄位的名稱和值。避免明確指定 Content-Type 標頭,因為瀏覽器將從 URLSearchParams 物件推斷它。

URLSearchParams 的替代方案

如果有實驗支持,您也可以將 FormData 物件直接傳遞給 URLSearchParams,而不是手動附加值。此方法仍在開發中,應在實施前進行徹底測試。

結論

透過了解FormData 的機制和Fetch API 的行為,開發人員可以發送表單資料正確地採用multipart/form-data 或application/x-www -form-urlencoded 格式,確保伺服器端正確的資料傳輸和處理。

以上是如何使用 Fetch API 發送表單資料:Multipart/form-data 與 Application/x-www-form-urlencoded?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn