2010-06-04 38 views

回答

4

使用javascript在按下按钮时发送ajax请求并取消表单提交。表单提交将始终是名称/值对。 XForms可以发送自定义的数据,但如果这是供公众使用的话,那么在使用大多数浏览器支持XForms之前需要几年时间,如果有的话。

+1

如果我使用AJAX进行POST,那么浏览器将不会自动处理HTTP响应,而且我希望它能够。换句话说,我正在寻找一个不依赖于JavaScript的问题的答案,而仅仅是HTML。 – 2010-06-04 02:38:45

7

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

这是正确的。反过来,这些数据的格式有几种规格。在HTML格式的情况下,最常用的是application/x-www-form-urlencoded,其次是multipart/form-data。您可以通过HTML <form>元素的enctype属性进行设置。另请参阅HTML规范的17.13.4 Form Content Types一章。


一个HTML表格元素可以张贴到一个URL,并且可以包含输入元件,但这些输入元件得到变成了查询字符串。

这的确是application/x-www-form-urlencoded的工作原理。请注意,这个查询字符串实际上代表了整个HTTP请求体!所以请求主体绝对不是空的,因为你似乎认为。


我怎样才能得到一个形式沿数据,它在其提交按钮发送HTTP POST请求的身体被压也发?

因此实际上已经这样做了。如果您intented发送表单本身的HTML DOM树表示,在之前的语句有点暗示的副本,那么你就可以做到这一点的JavaScript的一点帮助如下:

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

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

相关问题