[英]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.