当我们使用前端发送HTTP请求时,我们通常需要将数据携带到后端。在这个过程中,我们会遇到两种不同的方式:表单数据和请求负载。
表单数据
表单数据通常用于将表单提交到后端,并且它只能包含键值对(key-value pairs)。每个表单元素都有一个名称和一个值,这些名称和值将被发送给服务器。表单数据是通过 application/x-www-form-urlencoded
格式进行传输的,这是一种 MIME 类型(Multipurpose Internet Mail Extensions)。
示例代码
-- -------------------- ---- ------- ------ ------ --------------------------- ------ ----------- ------------- ------------------------ ------ -------------------------- ------ --------------- ------------- ------------------------ ------ ------------- ----------- -------
当我们提交这个表单时,将发送以下数据到服务器:
username=johndoe&password=secret
请求负载
请求负载(Request Payload)通常用于向服务器传递大量数据,例如 JSON 或 XML 数据。它可以包含任何格式的数据,而不仅限于键值对(key-value pairs)。请求负载是通过 application/json
或 application/xml
等类型的 MIME 格式进行传输的。
示例代码
-- -------------------- ---- ------- ----- ---- - - --------- ---------- --------- -------- -- --------------- - ------- ------- -------- - --------------- ------------------ -- ----- -------------------- -- -------------- -- ---------------- ------------ -- -------------------- ------------ -- ----------------------- --------
在这个例子中,我们使用 fetch
API 将数据发送到后端。注意 Content-Type
头部指定了发送的数据类型为 JSON,而不是表单数据。
总结
虽然表单数据和请求负载都可以向服务器传递数据,它们的主要区别在于其传输格式和允许传输的数据类型。当您需要向服务器传递大量数据或非键值对数据时,请使用请求负载。否则,表单数据通常是更好的选择。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/26035