Como ya ha descubierto, hay exactamente dos formas de transmitir datos a través del protocolo http: GET
o POST
. También hay un tercer tipo de mensaje HTTP llamado HEAD
, pero en realidad solo se usa para obtener metadatos alrededor de un recurso sin descargarlo y no se implementa ampliamente.
Obviamente, tanto GET
como POST
son fácilmente accesibles mediante el uso de una etiqueta <form>
. También se puede acceder fácilmente al GET
al agregar manualmente parámetros de consulta a la URL en forma de pares nombre-valor (foo.html?a=1&b=2
).
La belleza y la complejidad de POST
, sin embargo, es que los pares de nombre-valor se comunican desde el navegador al servidor web incluido en el encabezado de solicitud HTTP que no es de fácil acceso. La única forma de lograr el POST
sin utilizar una etiqueta <form>
es modificar manualmente el encabezado de solicitud HTTP y agregar los pares nombre-valor en usted.
También tenga en cuenta que un servidor HTTP no sabe intrínsecamente si una solicitud (GET
o POST
) provino de una ventana principal del navegador o una llamada AJAX. De todos modos, el servidor web leerá la solicitud, descifrará si es una solicitud GET
o POST
, buscará pares de nombre-valor según corresponda y generará una respuesta.
Si desea obtener más información sobre cómo formatear correctamente una solicitud POST
, puede ingresar al jmarshall.com/easy/http/ o quizás al tcpipguide.com/free/t_HTTPRequestMessageFormat.htm. El recurso definitivo es siempre el W3C, pero a veces las RFC pueden ser terriblemente confusas para nosotros, simples mortales, para leer.
Creo que su intención era crear una solicitud POST para evitar enviar los parámetros a través de la línea de dirección ... que su método derrota. –
Cuando leí su pregunta, entiendo que quiere enviar cosas dentro de la url y no un formulario y proceder a través de POST ... pero podría estar equivocado ... la pregunta no está clara de ... de todos modos lo que sugiero funciona si el OP quiere hacer lo que sugiero. –