代码之家  ›  专栏  ›  技术社区  ›  Shaggy Frog

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

  •  16
  • Shaggy Frog  · 技术社区  · 16 年前

    一个HTML form 元素可以发布到URL,并且可以包含 input 输入

    在按下submit按钮时发送的httppost请求体中也要发送数据?

    2 回复  |  直到 12 年前
        1
  •  7
  •   BalusC    12 年前

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

    没错。然而,这些数据的格式又有几个规范。对于HTML表单,最常用的是 application/x-www-form-urlencoded multipart/form-data enctype HTML的属性 <form> 17.13.4 Form Content Types HTML规范的。


    HTML表单元素可以发布到URL,并且可以包含输入元素,但是这些输入元素会变成一个查询字符串。

    确实是这样 作品。请注意,这个查询字符串实际上代表了整个HTTP请求体!所以请求体绝对不是像您所想的那样是空的。


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

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

    表单的整个htmldom树表示是字符串格式,可以作为带有名称的请求参数使用 source .

        2
  •  4
  •   Samuel Neff    16 年前