Cómo utilizar Response.Redirect en una secuencia de comandos de servidor

Resumen

El método Redirect del objeto Response funciona mediante el envío de un encabezado al cliente. Este encabezado hace que el cliente examine otra ubicación de dirección URL especificada en el encabezado. Como un encabezado debe aparecer al principio de un documento, no es posible poner el método Redirect en un documento que contiene código HTML delante.

Para evitar este comportamiento puede utilizar las capacidades de almacenamiento en búfer del objeto Response. De esta forma puede enviar código HTML al búfer hasta llegar a un punto en el que se utiliza el método Redirect. Si en este punto necesita hacer una redirección a otra página, desactive el búfer y emita Response.Redirect.

Error de ejemplo


Al intentar utilizar el método Response.Redirect en una secuencia de comandos de servidor, puede producirse el siguiente error cuando se tiene acceso a la página:
Error de objeto Response 'ASP 0156 : 80004005
Error de encabezado
/<página.asp>, línea 9
Los encabezados HTTP ya están escritos en el explorador cliente. Cualquier cambio en el encabezado HTTP se debe hacer antes de escribir el contenido de la página.

ASP de ejemplo

El siguiente código de páginas Active Server (ASP) de ejemplo ilustra este concepto:
   <%
' Begin buffering the HTML
' Note this MUST happen before the initial <HTML> tag.
Response.Buffer = True
%>
<HTML> <BODY> Código HTML antes de una posible redirección.<P>

<%
' Change the following line as appropriate for your script
If 1 = 1 Then
Response.Clear
Response.Redirect "filename.asp"
End If
%>

Code to be added

Use the following additional HTML code after the redirect:
   <%
' The following causes the HTML to actually be sent to the client.
' Up to this point, no HTML has actually been downloaded to the client
' browser.
Response.End
%>
</BODY> </HTML>
El ejemplo anterior siempre hace una redirección al archivo denominado Filename.asp.

Nota
No es necesario establecer Response.Buffer = True en Windows 2000 porque es True de forma predeterminada.

Referencias

Para obtener los artículos de Knowledge Base más recientes y otra información de soporte técnico acerca de Visual InterDev y páginas Active Server, visite la página siguiente del sitio del Servicio de soporte técnico de Microsoft:

Propiedades

Id. de artículo: 159402 - Última revisión: 10/26/2007 - Revisión: 1

Comentarios