会话问题:
财务系统在IE6 sp03下每打开一个新窗口(target='_blank')就会丢失session ,只要是新窗口都会出现登录超时提示,说明新窗口里没有取到session这是为什么呢,改如何去解决呢?
解决方案:
Session ID会保存在浏览器的Cookie中,而IE6,每次弹出一个窗体的时候,都相当于启动了一个独立的IE浏览器,所以第一个窗体的Cookie和第二个窗体的Cookie不在一个存储区域,所以会导致索引不到服务器端的Session,这个没有办法。
解决的方式有两个:一个是弹出模式窗体(用JS来模拟);第二个就是不弹出窗体了。
我采用的是第二种解决方式,不用弹出窗体,而是使用了iframe的方式,代码如下:
if(!window._commonIframe){
document.body.insertAdjacentHTML("beforeEnd","<iframe name='commonIframe' style='display:none;position:relative;'></iframe>");
window._commonIframe=true;
}
obj.target="commonIframe";
obj.href=url;