当我在 send() 方法中发送 AJAX Post 请求并在 queryString 中发送参数时,
Chrome Developer Tool 的 XHR 捕获工具会显示请求负载下的参数。当我使用 jquery 的 post 函数时,该工具在表单数据部分下显示参数。
有什么不同 ?
当我在 send() 方法中发送 AJAX Post 请求并在 queryString 中发送参数时,
Chrome Developer Tool 的 XHR 捕获工具会显示请求负载下的参数。当我使用 jquery 的 post 函数时,该工具在表单数据部分下显示参数。
有什么不同 ?
您没有提供足够的信息如何使用发送功能,但我假设您没有设置 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 编码的键值=
对由&
. 表单数据部分然后显示键值参数(当查看解析时)。这种方式在过去更为常见,因为它是 HTML 表单的默认设置。
其他情况显示在请求有效负载部分(现在为了可读性以及 JSON 等常见格式进行了解析)。