我只在IE浏览器中清除会话有问题(我已在不同版本的IE(IIS 6和7)中测试过 - 它在Firefox和Opera中运行良好)。
我有4个小脚本(我显示代码以便更好地解释,我有问题):
1. default.asp - 它只显示会话值:
<%@LANGUAGE="VBSCRIPT"%>
<%
Session.Timeout=60
Response.Write("Session value: "&Session("site"))
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
</body>
</html>
2。 setsession.asp - 设置会话(“网站”)
<%@LANGUAGE="VBSCRIPT"%>
<%
Session("site")= "error"
Response.Redirect("default.asp")
%>
3.clearsession.asp - 将会话(“站点”)分配给空字符串
<%@LANGUAGE="VBSCRIPT"%>
<%
Session("site")=""
Response.Redirect("default.asp")
%>
4.site.asp - 如果Session(“site”)为空字符串,我不想显示此网站
<%@ language="VBScript" %>
<%
if Session("site") ="" then
Response.Redirect("default.asp")
end if
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<%Response.Write("Session value: "&Session("site"))%>
</body>
</html>
在IE中,即使sesion设置为“”,它也始终显示site.asp(不重定向),并显示该会话设置为“error”。它的行为就像在IE中我无法传递会话值beetwen页面。在Firefox和Opera中一切都很好。你能解释一下,问题在哪里,怎么解决?
答案 0 :(得分:1)
会话是服务器端但IE是客户端,这不会是问题。 可能是因为IE比其他浏览器缓存更多,所以它不需要重新请求某些页面,因此代码不会执行。您可以添加缓存标头以告知客户端不要缓存。
答案 1 :(得分:0)
如果问题仅出现在IE中,则意味着它是客户端问题。无需修复代码。
检查Cookie是否已启用且会话是否适用于其他网站。问题出在您的浏览器设置中。
答案 2 :(得分:0)
我看到的唯一客户端问题是浏览器缓存。尝试ctrl + F5强制刷新以重新发送请求以查看您是否在IE中观察到相同的行为。