什么是HTTP方法的默认形式?

提交HTML表单而未指定方法时,使用的默认HTTP方法是什么? GET还是POST?

HTML标准之间的这种行为是否改变过?

请尽可能引用W3C标准文档。

这是GET。

看看这里 。

摘抄:

<!ATTLIST FORM %attrs; -- %coreattrs, %i18n, %events -- action %URI; #REQUIRED -- server-side form handler -- method (GET|POST) GET -- HTTP method used to submit the form-- enctype %ContentType; "application/x-www-form-urlencoded" accept %ContentTypes; #IMPLIED -- list of MIME types for file upload -- name CDATA #IMPLIED -- name of form for scripting -- onsubmit %Script; #IMPLIED -- the form was submitted -- onreset %Script; #IMPLIED -- the form was reset -- accept-charset %Charsets; #IMPLIED -- list of supported charsets -- > 

好读

方法GET和POST的HTML表单 – 有什么区别?

这里是W3C的参考,它说GET是默认的。

如果未指定,则默认为GET。 我看不出有什么迹象表明这种行为曾经不同。 有意义的是GET是默认的,因为它指定该方法应该用于没有副作用的操作。

http://www.faqs.org/faqs/www/cgi-faq/section-37.html

来自http://www.w3.org/TR/html401/interact/forms.html#h-17.3的引文:;

method = get | post [CI]
该属性指定将使用哪个HTTP方法提交表单数据集。 可能的(不区分大小写)值是“ get ”(默认值)和“ post ”。 请参阅表格提交使用信息部分。

17.13.1表格提交方法
FORM元素的method属性指定用于将表单发送到处理代理的HTTP方法。 这个属性可能有两个值:

  • get:通过HTTP“get”方法,表单数据集被附加到由action属性指定的URI(带有问号(“?”)作为分隔符),并且这个新的URI被发送到处理代理。

  • post:使用HTTP“post”方法,表单数据集包含在表单主体中并发送给处理代理。

当形式是幂等的(即不引起副作用)时,应该使用“get”方法。 许多数据库搜索没有明显的副作用,并为“get”方法创建理想的应用程序。

根据您所要求的W3C标准 ,默认值应为GET。

当我使用PHP提交数据给自己(没有指定行动)

 <form method="post" enctype="multipart/form-data" name="upform"> <input type="submit" value="Ajax Upload" onclick="return upload(upform);" /> </form> 

默认行动是将数据发送到提交表单的文件。 但是,我怎么能访问JavaScript的提交文件的默认操作或名称?

 function upload(form) { var request = new XMLHttpRequest(); alert("Action="+form.action); request.open("POST", form.action); } 

我发现的唯一方法是将操作设置为“#”,但我想知道是否有更好的方法。