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

时间:2012-05-08 07:39:41

标签: javascript jquery ajax

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

Chrome Developer Tool的XHR捕获工具显示请求有效负载下的参数。 当我使用jquery的post函数时, 该工具在“表单数据”部分下显示参数。

有什么区别?

1 个答案:

答案 0 :(得分:28)

您没有提供有关如何使用send函数的足够信息,但我假设您没有设置mime类型来指定您正在发送表单数据

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

发送的数据在这种情况下是在编码查询字符串

时编码的
xhr.send("name=foo&value=bar");

否则开发人员工具不会将其解释为表单数据。

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

更新:明确回答有什么不同......

  • 如果请求(通常是POST)将Content-type标头设置为application/x-www-form-urlencoded,则主体应采用带有url编码的密钥的标准查询字符串形式=加入的em> & value 对。然后,表单数据部分显示键值参数(查看解析时)。这种方式在过去更为常见,因为它是HTML表单的默认设置。

  • 其他情况显示在请求有效负载部分(现在解析了可读性以及JSON等常见格式)。