当我在send()方法中发送AJAX Post请求并在queryString中发送参数时,Chrome Developer Tool的XHR捕获工具显示了请求有效负载下的参数。当我使用jquery的post功能时, 该工具在Form Data部分显示参数。表单数据和请求负载之间有什么区别?
有什么区别?
当我在send()方法中发送AJAX Post请求并在queryString中发送参数时,Chrome Developer Tool的XHR捕获工具显示了请求有效负载下的参数。当我使用jquery的post功能时, 该工具在Form Data部分显示参数。表单数据和请求负载之间有什么区别?
有什么区别?
你没有提供如何使用发送功能足够的信息,但我认为你不设置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等常见格式进行了解析)。
对于未来的读者关注这一点:http://stackoverflow.com/questions/9597052/how-to-retrieve-request-payload –