小编典典

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

ajax

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

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

有什么区别 ?


阅读 1169

收藏
2020-07-26

共1个答案

小编典典

您尚未提供有关如何使用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所述主体预计为与网址编码标准查询字符串的形式 = 通过加入对&。然后, 表单数据 部分显示键值参数(在解析时查看)。这种方式在过去更为常见,因为它是HTML表单的默认设置。

  • 其他情况在“ 请求有效负载” 部分中进行了显示(如今,为了可读性以及诸如JSON之类的常见格式已对其进行了解析)。

2020-07-26