HTTP规范说POST请求可以包含任意数据体.
那是对的.然而,该数据的格式又有几种规格.对于HTML表单,最常用的是application/x-www-form-urlencoded
,后跟multipart/form-data
.您可以通过enctype
HTML <form>
元素的属性进行设置.另请参见第17.13.4节HTML规范的表单内容类型.
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>
Run Code Online (Sandbox Code Playgroud)
然后,表单的整个HTML DOM树表示形式为字符串格式,可用作带名称的请求参数source
.
使用 javascript 在按下按钮时发送 ajax 请求并取消表单提交。表单提交将始终是名称/值对。XForms 可以发送自定义数据,但如果这是供公共使用的,那么 XForms 要想得到大多数正在使用的浏览器的支持(如果有的话)还需要数年时间。
归档时间: |
|
查看次数: |
17881 次 |
最近记录: |