首 页
|
域名注册
|
虚拟主机
|
网站制作
|
网站案例
|
网站优化
|
网站推广
|
企业邮局
|
服务器租用
|
广告设计
首页
域名注册
虚拟主机
网站建设
企业邮局
网站优化
网站备案
服务器租用
其它服务
百度竞价排名
yahoo搜索
Google搜索
新浪搜索引擎
搜狐搜索引擎
网易搜索引擎
创新互联专业百度关键词优化,百度排名优化,百度快照优化,网站建设的互联网企业!
域名注册
中文域名
英文域名
通用网址
域名解析
域名转入\转出
虚拟主机
主机购买
管理主机
FTP上传
数据库管理
主机续费升级
网站建设
建站流程介绍
网站设计
网站改版
网站维护
网站推广
企业邮局
邮箱使用
管理邮箱
邮箱续费升级
全球邮局
网站优化
seo优化
seo技巧
收索引擎优化
关键词优化
网站备案
备案流程指南
修改备案
备案资料下载
备案小技巧
服务器租用
服务器租用
服务器托管
其它服务
400电话
在线客服
财务常见问题
会员常见问题
您现在的位置:
创新互联
>>
网站建设
>> 网站建设常见问题 >> 框架跨域运行不丢失session的方法 跨域session保存
框架跨域运行不丢失session的方法 跨域session保存
作者:曾小姐 文章来源:成都网站建设 点击数:968 更新时间:2012-04-07
前几天因为某企业网站内有一客户的服务系统,但是由于那个网站是租用的
主机空间
,所以不足以存放客户系统,因此另外搞了个服务器,为了使
域名
的统一性(另一个
服务器
的域名与原域名差别过大),所以把这个客户系统用框架包含在了原来的网站内,但碰到了因为跨域操作而使客户系统用户登陆后发生session丢失的问题,困挠了一整天,也在此发贴征求解决方法,但是都没有什么好的结果。后经小编多方查找资料,分析和试验,终于把这个问题给解决了,今天见有人问要程序,所以写这个贴子,以供大家共享。
首先说明原理:
系统是认一个程序范围的,一般来说,一个IE默认为一个程序范围.
框架因为有了跨域的内容,所以它首先默认的是框架程序本身的程序范围,这样使得框架内的程序范围得不到确认.
为了让这个IE默认为框架内的程序范围,所以我使用了多次跳转.
首先,跳出本框架,进入一个无框架的需要session值的网站页面(就叫它B
服务器
的页面),并在这个页面中生成一个session以便系统自动生成一个sessionID,然后又跳回到有框架的页面.因为系统已经为这个IE生成了一个sessionID,所以只要不关掉这个IE,系统一直以为这个IE是本程序范围的.这样,再次生成的session值就得以在这个ID中生存下来.
也就达到了骗过系统的目的.
再补充一点,二次跳转使用了不同的方式,原因是我需要把框架外的信息丢弃,而要保存框架内的信息.
而不同的跳转方式会丢弃或保存跳转前的信息的。
程序实现方式:
文件1:
框架文件:index.htm(运行在服务器A上)
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<title>
创新互联
</title>
</head>
<frameset rows="1,*" border=0 frameborder="0">
<frame name="winBackLoad" scrolling="no" noresize target="mainweb1" src="default_top.htm">
<frame name="mainweb1" src="https://www.cdxwcx.com/index.html" scrolling="auto">
<noframes>
<body>
<p>此网页使用了框架,但您的浏览器不支持框架。</p>
</body>
</noframes>
</frameset>
</html>
文件2:index.asp (运行在服务器B上,作用跳转和生成sessionID)
<script>
if (top.location !== self.location) {
top.location=self.location;
}
//这个JS的目的是跳出框架运行
</script>
<%
if session("xm2")="" then
session("xm2")="eee"
'上面这一句的目的只是为了使用session,让系统为这个IE生成一个sessionID,并且判断一下是不是已经跳转过,免得引起死循环。
%>
<META HTTP-EQUIV=REFRESH CONTENT="0;URL='http://www.cdxwcx.cn/index.htm'">
<%
,上面这一句是回到框架,注意:只能用上面这个跳转的方法,别用下面的跳转方法。
else
Response.Redirect "index2.asp"
'上面一句才是真正地跳转运行服务器B上的程序!注意:也只能用这方法跳!
end if%>
经过以上的跳转,本IE已经有了
服务器
cdxwcx.com上的sessionID,也就是说,框架虽然是在服务器cdxwcx.cn上的主框架运行,但它可以确保服务器cdxwcx.com上的session不丢失,达到跨域运行的目的。
上一篇文章:
网站建设分析access数据库的承载量
下一篇文章:
网站建设网页分页代码百万级数据分页代码
分享到:
QQ空间
新浪微博
腾讯微博
人人网
开心网
百度搜藏
腾讯微博
网易微博
创新互联
|
网站建设
|
网站案例
|
域名注册
|
网站空间
|
jsp虚拟主机
|
优化排名
|
服务器租用
|
云主机
|
网站营销推广
|
数据库知识
|
域名转入\转出
优化电话:028-86922220 13518219792 公司地址:成都市太升南路288号锦天国际A幢1002号
支持信箱:service@cdxwcx.com 版权所有:创新互联-供最优势的网站制作 蜀ICP备13010860号
创新互联成都网站建设:ASP使用session 成都网站制作 asp跨域session保存 框架session传值