2011-09-30 146 views
1

当我使用IE浏览器(IE 9)时,我使用javascript window.location函数丢失会话变量。javascript window.location和IE会话变量丢失

我注意到页面前和页面后显示相同的会话ID;但即使会话标识相同,重定向发生时会丢失会话变量 。 我也注意到,这并不是每次都在IE中发生,只有一些时间(随机)。使用Chrome我没有遇到任何问题。

的现场应用是在这里:。http://apps.facebook.com/zabeachwatch/ (当您查看视频应该超时和重定向你回来经过一段时间后 如果您在注册页面上登陆了,这意味着会话变量有当通过Facebook访问页面时,不应该发生这种情况)

是否有其他方式可以重定向计时器事件?

下面是导致重定向片段。(window.location的...)

<% 
String cat = request.getParameter("cat"); 
String back_url = "CameraList.jsp?cat=" + cat; 
back_url = response.encodeURL(back_url); 
%> 



<script type="text/javascript" language="javascript"> 
<!-- 
var winW = 630, winH = 460; 

function delayer(){ 
var s = "<%=back_url%>"; 
window.location.href = s; 
return true; 
} 

<body id="images" style="background: rgb(197,204,211) 
url(images/stripes.png);" onload="setTimeout('delayer()', 30000); 
+0

请问你的JSP使会话? '<%@ page session =“true”%>' –

+0

我已经添加了这个,但没有任何区别。 (再次会话ID是相同的,但会话数据丢失) IE做了警告“sucure和非安全内容”这可能是一个原因吗? – Wayne

回答

0

我发现,与INTERNET EXPLORER 预期 “window.location.href” 不工作8和9.

另一种适用于我的方法是使用元标记“refresh”和其他一些逻辑来获得相同的结果。在我的情况下,这是一个简单的超时功能。

<meta http-equiv="refresh" content="60"/>

好运