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的窗口(每个窗口都可以给他命名)
分享到:
相关推荐
### Session丢失解决方法 在ASP.NET开发过程中,经常会遇到一种情况:当对网站进行某些特定操作(如修改或删除站内目录)时,原本正常的Session会突然失效或丢失。这不仅影响用户体验,还可能导致一系列安全性和...
在探讨“IFrame中Session丢失的解决办法”这一主题时,我们首先需要理解Session与IFrame的基本概念及其在Web开发中的交互方式。Session是Web应用中用于存储用户特定信息的一种机制,它允许开发者在用户的会话期间...
Session丢失的原因及解决办法 Session是Asp.net网站的一种重要机制,用于保持用户登录状态和验证码等信息,但是Session丢失的问题却经常出现。那么, Session 丢失的原因是什么?如何解决这个问题呢? Session的...
4. **应用更新**:更新Bin目录下的DLL文件或Web应用程序的其他部分可能导致Session丢失。 针对这些问题,有以下几种解决方案: **1. 使用StateServer模式** 将`<sessionState>`配置中的`mode`属性设置为`...
以下将详细探讨Session丢失的可能原因及解决策略。 1. **Session超时**:服务器默认设置了一个Session的生命周期,比如30分钟无操作后自动销毁。如果用户在这个时间内没有进行任何交互,Session就会过期,从而丢失...
NULL 博文链接:https://thoreau.iteye.com/blog/745100
一个服务器上搭建了多个tomcat或者weblogic,...这个事情没办法解决,所以你不要搞两个端口,最好是搞两个IP。原来都是cookie惹的祸,它不会区分端口,造成这多个站点不断的后来的覆盖前面的,从而造成session的丢失。
下面是处理和解决Nginx session丢失问题的一些知识点和方法: 1. 了解Session机制:在Web应用中,Session用于在服务器端保存用户的会话状态。用户登录后,服务器会生成一个唯一的Session ID,通常存储在用户的...
详解 Feign 调用 Session 丢失解决方案 Feign 是一个基于 Java 的声明式 Web 服务客户端,提供了一个简单的方式来调用远程服务。但是在使用 Feign 调用远程服务时,可能会出现 Session 丢失的问题,本文将详解 ...
本文将深入探讨分布式环境下Session丢失的问题及其解决方法,并通过阿里P7级技术专家的实际案例分享和源码分析来提供全面的技术指导。 #### 二、分布式环境下Session丢失的原因 1. **会话状态集中存储:** 在...
以下详细介绍Yii框架中用户登录后session丢失问题的解决方法。 首先,我们需要了解Yii框架中用户登录和session管理的基本原理。在Yii中,用户登录通常是通过认证组件(CWebUser)来完成的。当用户正确输入用户名和...
本文主要总结了几个可能导致Session丢失的原因及相应的解决办法。 首先,Session丢失的一个常见原因是某些杀毒软件会扫描Web.Config文件,这可能导致IIS进程重新启动,进而造成Session数据丢失。为了避免这种情况,...
### 关于.NET中C# Session丢失与SessionID变化问题解析 #### 一、问题背景及概述 在.NET框架中,特别是在使用C#进行Web开发时,Session管理是至关重要的一个环节。Session对象允许服务器存储有关用户会话的信息,...
通过上述方法,可以有效地解决在Windows Server 2008系统中运行IIS7时遇到的Session丢失问题。对于开发者和系统管理员来说,了解Session的工作原理和常见的故障排除方法是非常重要的,有助于提高应用程序的可靠性和...
网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码。 大概思路就是借助小程序本地储存+网络请求的header可读可写来实现类似浏览器的cookies保存session功能。 直接上代码 ...
Session丢失的原因及解决方法如下: 原因分析: ***应用默认将Session状态保存在内存中,使用"InProc"模式,即Session数据保存在***工作进程内。当IIS进程(例如aspnet_wp.exe或W3wp.exe)重起时,所有保存在该进程...
本文将详细介绍几种常见的C# Session丢失问题及其解决办法。 首先,Session状态丢失的原因可能有以下几种: 1. 杀毒软件扫描Web.Config文件。由于Web.Config文件包含了应用程序配置信息,包括Session状态的设置,...
解决Session丢失问题的方法: 1. 调整Session超时时间,延长Session的生命周期。 2. 使用持久化的Session状态存储,如StateServer或SQLServer模式。 3. 当进行文件操作时,确保操作是异步的,避免阻塞主线程导致...
解决办法同样是确保正确设置Cookie策略,使得Session能够在不同的页面间正确传递。 总的来说,针对IE浏览器中iframe跨域导致Session丢失的问题,关键在于理解浏览器对跨域Cookie的处理方式,特别是IE的独特限制。...