Esta pregunta es un poco complicada porque combina dos conceptos. El primero es POSTing y el segundo es Ajax. POSTing, en comparación con GETting, es un método HTTP diferente con diferentes implementaciones y semántica. Ajax, o XmlHttpRequest, tiene su contraparte en la solicitud/navegación normal. Puede usar POST o GET tanto para XmlHttpRequest como para la navegación normal y el envío de formularios (bueno, POST es siempre un "envío de formularios"). La diferencia entre XmlHttpRequest y las solicitudes normales es que una solicitud normal reemplaza la página con una página nueva.
Puede escribir casi cualquier sitio web usando solo Ajax para obtener datos y cambiar el DOM; eso es principalmente cómo funciona Gmail. No hay "presentaciones de formularios" en el sentido tradicional. Pero todavía hay GET y POST porque el servidor y los navegadores interpretan los resultados de manera diferente. Se supone que GET es idempotente; POST está diseñado para operaciones que cambian el estado en el servidor. Por ejemplo, una transacción ecom debe ser un POST. Esto no cambia cuando se usa Ajax porque quiere que los servidores proxy también comprendan que se trata de un POST y que no deberían tratar de almacenar en caché la respuesta.
También existen ventajas y desventajas al usar GET frente a POST. No puede marcar los resultados de una POST porque los parámetros están ocultos. No se puede OBTENER algo con valores de parámetros de longitud ilimitada porque IE solo admite unos 2000 caracteres.
También hay desventajas al uso de Ajax frente a envíos normales; no puede marcar la página resultante (porque la página no ha cambiado); el botón Atrás no funcionará como se esperaba. Pero con Ajax podría minimizar los datos transferidos y también proporcionar actualizaciones convenientes para una página (como monitorear el estado de un proceso largo) sin molestos parpadeos o refrescantes.
En resumen, los dos tipos de solicitud, Ajax y presentación de formulario tradicional, se pueden usar con GET y POST, y existen ventajas y desventajas para cada uno. Ningún tipo puede hacer todo lo que el otro puede hacer, por lo que puede esperar ver una combinación en el futuro previsible.
No pensé en eso, buen punto. – kemiller2002
jQuery creará automáticamente un iframe y un formulario en el iframe, y POST ese formulario, si detecta una carga de archivo dentro de la solicitud de Ajax. –
Aún así, eso sigue siendo un POST, que era mi punto. – Welbog