В HTML вы можете отправлять данные с одной страницы на другую с помощью запроса GET двумя способами:
http://www.example.com/somepage.php?data=1
...или же...
<form action = "somepage.php" method = "get">
<input type = "hidden" name = "data" value = "1" />
<input type = "submit" value = "Submit">
</form>
Однако с запросом POST я видел только данные, отправляемые через такие элементы формы:
<form action = "somepage.php" method = "post">
<input type = "hidden" name = "data" value = "1" />
<input type = "submit" value = "Submit">
</form>
Если у меня есть только один параметр, который я хочу отправить на другую страницу с помощью POST, есть ли более простой способ, чем обернуть его в форму?






Есть только два способа выполнить POST из браузера - форма или запрос Аякс.
Использование только HTML, форма - единственный способ сгенерировать запрос POST. Вы можете использовать сценарии на стороне сервера / Javascript для генерации запросов POST другими способами, но никакие другие способы делать это только с обычным HTML.
В HTML только с формой.
Но вы можете это сделать, если будете играть со своей серверной частью. Вот хорошая статья, которая покажет вам, как управлять Получить, чтобы изменить его на публикацию через PHP. Это потребует от вас поиграть с fsockopen ... В этом случае будет использоваться ваш параметр? Id = 1 & param = 2 ... и будет создан запрос POST на стороне сервера. Вы можете сделать его универсальным, как только он настроен, он будет работать, но сначала нужно немного поработать.
Когда я читаю его вопрос, я понимаю, что он хочет отправить материал в URL-адресе, а не в форме, и продолжить все через POST ... но я могу ошибаться ... вопрос неясен, чем ... в любом случае то, что я предлагаю, работает, если ОП хочу делать то, что я предлагаю.
Как вы уже обнаружили, существует ровно два способа передачи данных по протоколу http: GET или POST. Существует также третий тип HTTP-сообщения, называемый HEAD, но на самом деле он используется только для получения метаданных о ресурсе без их загрузки и широко не применяется.
Очевидно, что и GET, и POST легко доступны с помощью тега <form>. GET также легко доступен, если вручную добавить параметры запроса в URL-адрес в форме пар имя-значение (foo.html?a=1&b=2).
Однако красота и сложность POST заключается в том, что пары имя-значение передаются из браузера на веб-сервер, заключенные в заголовок HTTP-запроса, который не так легко доступен. Единственный способ выполнить POST без использования тега <form> - это вручную изменить заголовок HTTP-запроса и добавить пары имя-значение в себя.
Также имейте в виду, что HTTP-сервер внутренне не знает, пришел ли запрос (GET или POST) из главного окна браузера или из вызова AJAX. В любом случае веб-сервер прочитает запрос, расшифрует, является ли это запросом GET или POST, найдет подходящие пары имя-значение и сгенерирует ответ.
Если вам нужна дополнительная информация о том, как правильно отформатировать запрос POST, вы можете перейти к jmarshall.com/easy/http/ или, возможно, tcpipguide.com/free/t_HTTPRequestMessageFormat.htm. Окончательный ресурс - это всегда W3C, но иногда RFC могут быть ужасно запутанными для нас, простых смертных.
Конечно, вы всегда можете выполнить GET на странице, которая содержит логику на стороне сервера (или AJAX), которая создаст запрос POST (например, GET /pageWhichCreatesAPost.py). Конечно, очень беспорядочно, но бывают случаи, когда такой обходной путь может оказаться полезным.
Это именно то, что я написал час назад: P
Я думаю, что его намерением было создать запрос POST, чтобы избежать отправки параметров через адресную строку ... что ваш метод побеждает.