A vueltas con el Response.Redirect


http://www.asptutor.com

A vueltas con el Response.Redirect

Observamos muchas consultas en los foros respecto de como hacer un response.redirect a otra pagina, vamos a ver si en este articulo lo aclaramos de una vez por todas.

Para hacer un response.redirect a otra página y evitar el error:

objeto Response error 'ASP 0156 : 80004005'

Error de encabezado

 

no debemos haber enviado aun NADA al explorador cliente, cuando decimos NADA, queremos decir NADA, ni siquiera las cabeceras html como <html>, <Body>, etc.

La mejor forma de evitar este error es utilizar el Buffer de página.
Pondremos como primera instrucción de la página 

 <%Response.Buffer=true%>

esto bloqueara el envió de datos al cliente hasta que termine la ejecución de la página o invoquemos al metodo <% Response.Flush %>.

Si en cualquier momento queremos hacer un response.redirect a otra página, lo que haremos será VACIARLO con


<%Response.Clear%>


y después hacer el response.redirect

Ejemplo

<%
Response.Buffer=true
%>
<html>
<body>
<p>Escribimos texto, pero este todavia no se manda al cliente hasta que 
no invoquemos el response.flush o acabe la ejecución.</p>
<p>Este txto sigue sin mandarse, esta guardadito en el buffer</p>
<p>Lo hemos pensado mejor y lo que vamos a hacer es redirigir al clienta a
otra página</p>
<%
Response.clear
response.redirect "default.asp"
%>
</body>
</html>

Esperamos que con este ejemplo se acaben todos vuestros problemas con la redirección de páginas