IE下嵌入iframe获取session问题

来源:互联网 发布:微信三公机器人软件 编辑:程序博客网 时间:2024/05/29 02:07

IE下嵌入iframe跨域获取session问题.

做一个单点登陆的页面,  自动登陆另一个域地址下的网站.  方法: 在当前页面嵌入iframe, 用javascript模拟自动登陆:

<html><head></head><body><form name="frm" action="http://1.1.1.1/system/login.do" method="post"><input type="text" name="userName" value="username">                 <input type="password" name="password" value="password"></form><script language="JavaScript" type="text/JavaScript">function submitFrm() {document.frm.submit();}                submitFrm();</script></body></html>



以上代码在Chrome下通过, 但是在IE下不行, 无法获取到session. 


网上查了一下, 原因和浏览器权限有关, 详细的不说了,可以去了解一下P3P的相关作用.


改进:

STEP 1 : 在被嵌入系统的登陆页, 添加P3P设置 ,  设置方法


STEP 2: 修改页面针对IE处理:  嵌入页中, 再添加一个iframe来引用刚才设置了P3P的JSP页面.

<form name="frm" action="http://1.1.1.1/system/login.do" method="post"><input type="text" name="userName" value="username">                 <input type="password" name="password" value="password"></form><script language="JavaScript" type="text/JavaScript">function submitFrm() {document.frm.submit();}                var iframe = document.createElement("iframe");iframe.src = "http://1.1.1.1/system/login.jsp";if (iframe.attachEvent){ // IE    iframe.attachEvent("onload", function(){     submitFrm();    });    document.body.appendChild(iframe);} else {    submitFrm();}</script>


0 0