Подтвердить что ты не робот

Каков метод HTTP по умолчанию?

Когда HTML-форма отправляется без указания метода, используется метод HTTP по умолчанию? GET или POST?

Изменено ли это поведение между стандартами HTML?

При необходимости укажите стандартный документ W3C.

4b9b3361

Ответ 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 это требовалось). Ссылок:

  • 5 и последующие, W3C TR

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);
}

Единственный способ, которым я нашел, - установить действие на "#", но мне нравится знать, есть ли лучший способ.