使用 HTML 表单时如何在 HTTP 请求正文中发送数据?

2024-05-06

HTTP 规范规定 POST 请求可以包含任意数据体。

An HTML form元素可以 POST 到 URL 并且可能包含input元素,但那些input元素变成查询字符串。

我怎样才能得到一个form还可以在按下提交按钮时发送的 HTTP POST 请求正文中发送数据吗?


HTTP 规范规定 POST 请求可以包含任意数据体。

这是正确的。然而,该数据的格式又存在多种规范。对于 HTML 表单,最常用的是application/x-www-form-urlencoded, 其次是multipart/form-data。您可以通过设置它enctypeHTML 的属性<form>元素。另见章节17.13.4 表单内容类型 http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4HTML 规范。


HTML 表单元素可以 POST 到 URL,并且可能包含输入元素,但这些输入元素会转换为查询字符串。

确实是这样application/x-www-form-urlencoded作品。请注意,该查询字符串实际上代表整个 HTTP 请求正文!所以请求正文绝对不像你想象的那样是空的。


如何获得一个表单,以便在按下提交按钮时发送 HTTP POST 请求正文中的数据?

因此它实际上已经这样做了。如果您打算发送表单本身的 HTML DOM 树表示形式的副本(如前面的语句中所暗示的那样),那么您可以通过 JavaScript 的一些帮助来实现这一点,如下所示:

<form onsubmit="this.source.value=this.outerHTML">
    ...
    <input type="hidden" name="source" />
    <input type="submit" />
</form>

然后,表单的整个 HTML DOM 树表示形式为字符串格式,可用作带有名称的请求参数source.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 HTML 表单时如何在 HTTP 请求正文中发送数据? 的相关文章

随机推荐