来源:www.cncfan.com | 2006-5-11 | (有9405人读过)
问: <td width="597" valign="top"><iframe frameBorder=0 name=right src="http://*.*.*.*/main.jsp" style="height:800px;visibility:inherit;width:100%;z-index:2" scrolling="auto"> </iframe> </td> 当直接访问http://*.*.*.*/main.jsp这个地址时,浏览器能和服务器建立session,但是如果iframe的话,浏览器如果不调整安全设置的话,就不能建立session。
我作了两个试验: 1、当“父”页面和iframe页面在同一站点时,session是由cookie建立,因为我建了个filter,得到: request.isRequestedSessionIdFromCookie()=true; 可以看出,此时session是用(会话)cookie建立的。
2、当“父”页面和iframe页面不在同一站点时,sessions建立失败, request.isRequestedSessionIdFromCookie()=false; 此时可以从浏览器的隐私报告中看到,浏览器阻挡了iframe页面中的cookie请求, 导致session建立失败。
不知有谁能告诉我在原因和解决方案,十分感谢
______________________________________________________________________________________________ 答1: 没用过,,,帮你Up ______________________________________________________________________________________________ 答2: 感谢Leemaasn(呆鸟一号) ______________________________________________________________________________________________ 答3: 不会的同学也请帮忙顶呀 ______________________________________________________________________________________________ 答4: 一个session只能针对一个站点吧,好像的说 ______________________________________________________________________________________________ 答5: 没有办法share cookie,否则IE就太不安全了。 ______________________________________________________________________________________________ 答6: session只能对一个用户,可以在同一个站点内用的 用application呢,到服务器关闭 ______________________________________________________________________________________________ 答7: 我估计也是没有办法。再看看吧,不行就结帖 ______________________________________________________________________________________________ 答8: 帮你up,没办法 ______________________________________________________________________________________________ 答9: 学习! ______________________________________________________________________________________________ 答10: 呵呵,iframe和frame邮什么不同,iframe可不可以嵌入到table里 ______________________________________________________________________________________________ 答11: 自己再顶一下 ______________________________________________________________________________________________ 答12: <iframe frameBorder=0 name=right src="http://*.*.*.*/main.jsp"
你这是在引用别的站点的内容了, 当然是不可以共用的,
这是安全规则设计的时候就是这样规定的啊.
要是可以随意共享的话,那人家使用iframe就可以盗取你的资料了.
______________________________________________________________________________________________ 答13: 再顶一次,明天结帖 ______________________________________________________________________________________________ 答14: pigo(~_~ ^-^. 。o 0 O O=无法悲伤=O O 0 o 。. ^-^~_~) ,我不懂,这种方式和在浏览器里访问有什么不一样?能解释一下吗? ______________________________________________________________________________________________ 答15: 要想建立session需要访问另一个网站的servlet。直接用iframe访问jsp是不可以的。 ______________________________________________________________________________________________ 答16: wyerm(Andy),能解释一下吗?多谢了。 ______________________________________________________________________________________________ 答17: 这种需求是在两个厂家的页面集成时产生的。两个厂家维护两套不同的系统,通过iframe把两个系统集成起来。 ______________________________________________________________________________________________ 答18: 如果用iframe不行的话,不知哪位高手有什么替代的方案,请不吝赐教! ______________________________________________________________________________________________ 答19: 应该这样用: a网站:a.jsp <iframe src="http://b.**.com/servlet/servlet1?**=**.....">这样访问会在b.**.com上面生成一个session。 如果a.jsp <iframe src="http://b.**.com/jsp/b.jsp?*=**.....">这样是不可以的。
|