什么是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); }
我发现的唯一方法是将操作设置为“#”,但我想知道是否有更好的方法。