session丢失问题的解决
当采用window.open() 打开新的窗口时,经常会出现session丢失的问题,在使用Frame或者iFrame会使客户端不能写cookie,而Session是基于cookie的,所以使用Frame或者iFrame的页面也就不能保持Session. 使用IE内核的浏览器基本上都会存在这个问题;目前使用的是J2EE处理session,看大家的情况,PHP,ASP 都同样存在这样的问题;不排除与客户段的情况存在关系。但不确定到底什么原因引起的。我觉得可能是:
1。客户端打开窗口等程序引起;
2。Cookie使用4K限制存在的问题;
3。客户端浏览器使用某些插件,或者某些特殊设置(如采用新的进程打开窗口MAXTHON等)导致该问题出现;
4。最近IE7也经常出现该问题;
当然,对于Session机制本身是无可厚非的。但各种客户端的条件是难以控制的;不知道这个问题什么时候才能得到解决;现在的Web应用,月来越难了。 标准不统一;客户端情况复杂;
一开始分析,可能是页面有缓存的问题。所以先使用语句使页面不再有缓存:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta http-equiv="expires" content="0">
但是问题依旧。在网上查询到一种方法,采用window.open()方法的name参数,同样可以保证只弹出一个页面,然后在这个弹出页面进行操作。
关于Window.open的参数小结(参书改编) 先看一个例子:
[javascipt:]window.open("Webpage.asp?",Derek,"height=100,width=100,status=yes,toolbar=yes,
menubar=no,location=no");
此语句打开一个新窗口,页面为webpage.asp,参数为var,名字为Derek,高为100,宽为100,显示状态栏和工具条,不显示菜单和地址。
具体总结的各个属性参数如下:
window = object.open([URL ][, name ][, features ][, replace]]]])
URL:新窗口的URL地址
name:新窗口的名称,可以为空
featurse:属性控制字符串,在此控制窗口的各种属性,属性之间以逗号隔开。
fullscreen= { yes/no/1/0 } 是否全屏,默认no
channelmode= { yes/no/1/0 } 是否显示频道栏,默认no
toolbar= { yes/no/1/0 } 是否显示工具条,默认no
location= { yes/no/1/0 } 是否显示地址栏,默认no
directories = { yes/no/1/0 } 是否显示转向按钮,默认no
status= { yes/no/1/0 } 是否显示窗口状态条,默认no
menubar= { yes/no/1/0 } 是否显示菜单,默认no se
scrollbars= { yes/no/1/0 } 是否显示滚动条,默认yes
resizable= { yes/no/1/0 } 是否窗口可调整大小,默认no
width=number 窗口宽度(像素单位)
height=number 窗口高度(像素单位)
top=number 窗口离屏幕顶部距离(像素单位)
left=number 窗口离屏幕左边距离(像素单位)
其中name参数用来在以后使用的html链接的target属性时引用这个窗口(用来在以后使用的html链接的target属性时引用这个窗口,在弹出页面使用<base target="name">)之外,还可以是以下参数
_blank 表示新开一个窗口,_parent表示父框架窗口,_self表示覆盖该窗口,xxx表示覆盖名字为xxx的窗口(每个窗口都可以给他命名)
分享到:
相关推荐
asp.net 修改/删除站内目录操作后Session丢失问题
IFrame中Session丢失的解决办法
Session原理、Session丢失的原因、Session存储的机制、Session丢失的解决方案
一个服务器上搭建了多个tomcat或者weblogic,...这个事情没办法解决,所以你不要搞两个端口,最好是搞两个IP。原来都是cookie惹的祸,它不会区分端口,造成这多个站点不断的后来的覆盖前面的,从而造成session的丢失。
主要介绍了Yii框架用户登录session丢失问题解决方法,通过针对底层代码的修改解决session丢失问题,具有一定参考借鉴价值,需要的朋友可以参考下
网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码。 大概思路就是借助小程序本地储存+网络请求的header可读可写来实现类似浏览器的cookies保存session功能。 直接上代码 ...
主要介绍了Nginx session丢失问题处理解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要为大家详细介绍了C# SESSION丢失问题的解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了在windows server 2008系统中,session丢失的解决方法,供大家学习参考
主要介绍了thinkphp中session和cookie无效的解决方法,涉及针对BOM头的分析与删除方法,具有一定的参考借鉴价值,需要的朋友可以参考下
正常操作情况下会有ASP.NET Session丢失的情况出现。因为程序是在不停的被操作,排除Session超时的可能。另外,Session超时时间被设定成60分钟,不会这么快就超时的。
IE10中Session丢失问题引起众多业内人士的关注,今天发现在IE10中登录网站时,使用表单验证机制(FormsAuthentication)却无法判断该用户已登入,保存的Session总会丢失,本文将介绍解决方法,感兴趣的朋友可以参考下,...
最近在做ASP.NET项目时,测试网站老是取不出Session中的值,在网上搜索了一下,找到一些解决方法,记录在这里。最后使用存储在StateServer中的办法解决了问题
解决uploadify用法时session发生丢失问题的方法_.docx
今天搞的一个登录页面,被...最后的解决方法是在那个登录页面里加上以下代码: 复制代码 代码如下: <span xss=removed>header(‘P3P: CP=”ALL ADM DEV PSAi COM OUR OTRo STP IND ONL”‘); session_start();</span
昨天去GTSC面试,有面试官问我关于Session丢失之后怎么查的问题,说老实话,开发到现在很少碰到这样的情况,唯一想到的就是Session超时,还有就是做Session读写日志,发觉面试官听了之后不是很满意,汗! 不管怎么说...