Каков метод HTTP по умолчанию?
Когда HTML-форма отправляется без указания метода, используется метод HTTP по умолчанию? GET или POST?
Изменено ли это поведение между стандартами HTML?
При необходимости укажите стандартный документ W3C.
Ответы
Ответ 1
Это ПОЛУЧИТЬ.
Посмотрите W3C Superceded Рекомендация 17.3 Элемент FORM.
Выдержка:
<!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-формах - какая разница?
Ответ 2
Здесь - ссылка W3C, в которой указано, что GET является значением по умолчанию.
Ответ 3
Если не указано, значением по умолчанию является 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:
метод = получить | сообщение [CI]
Этот атрибут указывает, какой метод HTTP будет использоваться для отправки набора данных формы. Возможными (без учета регистра) значениями являются "get
" (по умолчанию) и "post
". См. Раздел о представлении формы для информации об использовании.
17.13.1 Метод подачи формы
Атрибут метода элемента FORM
указывает метод HTTP используется для отправки формы обработчику. Этот атрибут может принимать два значения:
-
get: с помощью метода "get" HTTP набор данных формы добавляется к URI, указанному атрибутом действия (с вопросительным знаком ( "?" ) в качестве разделителя), и этот новый URI отправляется к обрабатывающему агенту.
-
post: С помощью метода "post" HTTP набор данных формы включается в тело формы и отправляется обработчику.
Метод "get" должен использоваться, когда форма является идемпотентной (т.е. не вызывает побочных эффектов). Многие поиски в базе данных не имеют видимых побочных эффектов и сделать идеальные приложения для метода "get" .
Ответ 4
Согласно стандарту W3C, который вы запрашиваете, по умолчанию должно быть GET.
Ответ 5
(более полный ответ, также о действии и энтипе)
По умолчанию "method", "action" и "enctype" формы HTML,, если они не указаны,
GET, текущий URL и application/x-www-form-urlencoded
соответственно.
(т.е. по умолчанию форма запрашивает текущую страницу с введенными параметрами.)
Это поведение никогда не менялось, кроме "действия" (в HTML 4 это требовалось). Ссылок:
method: "Отсутствующее значение по умолчанию для атрибута метода... состояние GET."
Действие:
Действие элемента - это значение атрибута formaction elements, если элемент представляет собой кнопку Submit и имеет такой атрибут, или значение его атрибута действия владельцев формы, если он есть, или пустую строку. & lt;...> Если action - пустая строка, пусть action будет URL-адресом документов в форме документа.
enctype: "По умолчанию для атрибута enctype отсутствует значение по умолчанию... состояние application/x-www-form-urlencoded
."
Метод: "Возможные (без учета регистра) значения:" get "(по умолчанию) и" post "."
действие: нет по умолчанию, DTD требует этого
enctype: "Значением по умолчанию для этого атрибута является" application/x-www-form-urlencoded "."
<!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"
Метод: "Это может быть либо GET или POST, и по умолчанию GET."
действие: нет явного предложения, только в DTD
enctype: "По умолчанию используется application/x-www-form-urlencoded."
<!ATTLIST FORM
action %URL #IMPLIED -- server-side form handler --
method (%HTTP-Method) GET -- see HTTP specification --
enctype %Content-Type; "application/x-www-form-urlencoded"
метод: нет явного предложения, только в DTD
action: "URI действия формы по умолчанию - базовый URI документа"
enctype: "Кодировка по умолчанию для всех форм - это application/x-www-form-urlencoded".
<!ATTLIST FORM
ACTION CDATA #IMPLIED
METHOD (%HTTP-Method) GET
ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
Ответ 6
Когда я использую 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);
}
Единственный способ, которым я нашел, - установить действие на "#", но мне нравится знать, есть ли лучший способ.