表单数据和请求负载有什么区别?

当我发送一个AJAX Post请求并在send()方法的queryString中发送参数时,

Chrome开发者工具的XHR捕获工具显示请求负载下的参数。 当我使用jquery的post函数时,该工具在Form Data部分显示参数。

有什么不同 ?

你没有提供足够的信息,你如何使用发送函数,但我假设你不设置MIMEtypes来指定你正在发送表单数据

xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 

在编码查询string时,发送的数据在这种情况下被编码

 xhr.send("name=foo&value=bar"); 

否则它不会被开发者工具解释为表单数据。

jquery在这方面为你做了大部分的工作。

更新:明确回答有什么区别…

  • 如果请求(通常是POST)将Content-type头设置为application/x-www-form-urlencoded则主体预计将以标准查询string的forms与由&join的url编码的key = value对组成。 表单数据部分然后显示键值参数(当查看被parsing​​时)。 这种方式在过去更为常见,因为它是HTML表单的默认设置。

  • 其他情况显示在请求有效负载部分中(为了便于阅读,现在parsingJSON等常见格式)。