繁体   English   中英

经典的ASP重定向应该去哪里?

[英]Where should a classic ASP redirect go?

下面的代码应该放在<head>吗? 还是页面上除了下面的代码之外没有其他内容?

<%
    Response.Redirect "http://www.sitename.com/?" & Request.QueryString
%>

只要启用了响应缓冲并且没有调用Response.Flush ,就可以在页面中的任何位置执行Response.Redirect 缓冲导致所有ASP代码在将任何页面发送到浏览器之前执行。 因此,如果您在<head>之后的代码内执行重定向,则不会将任何HTML发送到浏览器,因此重定向头将被正确发送。

这些天通常默认情况下在IIS中启用缓冲。 为了安全起见,您可以在ASP页面顶部附近添加以下行:

Response.Buffer = True

经典ASP是服务器端代码, <head>以及所有html是客户端代码。 如果您在.asp页中有此行,则该页上没有其他内容是没有意义的,因为用户将永远没有机会看到它。

如果该行位于条件语句中,则更有意义-例如

<%
    If Request.QueryString("id") <> "" then
    Response.Redirect "http://www.sitename.com/?" & Request.QueryString("id")
    End If
%>

在此,只有在url中提供了id值的情况下,用户才会跳到另一个页面,否则该页面中的所有客户端代码都将发送到浏览器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM