http - redirection - server error 302 found
es response.redirect siempre una respuesta http GET? (4)
En la mayoría de las API, la implementación de redirección estándar tiene un 302 que, de hecho, es por definición GET. Según su historial de preguntas, usted está familiarizado con ASP.NET, pero agregaré ejemplos para los Servlets de Java también.
ASP.NET:
Response.Redirect("http://google.com");
Servlet:
response.sendRedirect("http://google.com");
Implicitamente establece el estado de respuesta en 302 y el encabezado de Location
en la URL dada.
Cuando la solicitud actual es una solicitud POST y desea redireccionar con POST, entonces necesita una redirección 307. Esto no lo proporciona la API estándar, pero generalmente solo se trata de establecer el estado de respuesta y el encabezado apropiados.
ASP.NET:
Response.Status = "307 Temporary Redirect";
Response.AddHeader("Location", "http://google.com");
Servlet:
response.setStatus(307);
response.setHeader("Location", "http://google.com");
Tenga en cuenta que esto emitirá una advertencia de seguridad / confirmación en el cliente promedio que solicita confirmación al usuario final para enviar los datos POST a otra ubicación.
es response.redirect siempre una respuesta http GET? o podría ser POST? ....
Response.redirect solo usa GET ... No puede ser una publicación ... ¿Y entre qué idioma es?
Una redirección es una respuesta HTTP enviada al cliente. La respuesta contiene un encabezado Http llamado Ubicación que debe contener una url absoluta.
El cliente luego emite una solicitud GET en contra de esta url.
Entonces, no, POST no es una opción.
Más detalles aquí: http://en.wikipedia.org/wiki/URL_redirection
Suponiendo que esté utilizando asp.net, tal vez server.transfer sea lo que está buscando. En lugar de enviar la nueva URL al cliente, puede pasar el procesamiento a otra página y mantener el estado del formulario.