IE下嵌入iframe获取session问题

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>


猜你喜欢

转载自blog.csdn.net/wzl002/article/details/23761609