2010-10-27 237 views
1

我只在IE瀏覽器中清除會話有問題(我測試過不同版本的IE(IIS 6和7) - 它在Firefox和Opera中運行良好)。
我有4個個小腳本(我告訴代碼更好的解釋,在那裏我有問題):
1的default.asp - 只顯示會話值:IE清除會話

<%@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.si te.asp - 我不想顯示這個網站,如果會議(「網站」)是空字符串

<%@ 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> 

在即使使sesion被設置爲「」,它總是顯示site.asp IE(沒有按重定向),並顯示該會話設置爲「錯誤」。它的行爲就像在IE中我無法傳遞會話值beetwen頁面。在Firefox和Opera中,一切都很好。你能解釋一下,問題在哪裏?它如何解決?

回答

1

會話是服務器端,但IE是客戶端,這不會是問題。 可能是IE比其他瀏覽器緩存更多,因此不需要重新請求某些頁面,因此代碼無法執行。您可以添加緩存標頭來告訴客戶端不要緩存。

+0

感謝您的回覆。我在site.asp中添加了這段代碼,它有幫助:<%Response.CacheControl =「no-cache」%> <%Response.AddHeader「Pragma」,「no-cache」%> <%Response。 Expires = -1%>謝謝 – luk4443 2010-10-27 22:45:46

0

如果問題只出現在IE中,那意味着它是客戶端問題。無需修復代碼。

檢查cookie是否啓用且會話正在爲其他網站工作。問題出現在您的瀏覽器設置中。

0

我看到的唯一客戶端問題是瀏覽器緩存。嘗試按Ctrl + F5強制刷新以重新發送請求,以查看您是否在IE中觀察到相同的行爲。

+0

感謝您的回覆。是的,問題在於緩存。 Ctrl + F5幫助,但我添加了<%Response.CacheControl =「no-cache」%><%Response.AddHeader「Pragma」,「no-cache」%><%Response.Expires = -1%>和它運作良好。謝謝 – luk4443 2010-10-27 22:50:21