前段时间在做一项目时,需求是这样的,在我们开发的系统中引用其它系统(这里称为x应用)的几个模块,x应用只需提供用户名和密码是可以访问的。这就涉及到了跨域访问的问题了。
<%
response.setHeader("P3P","CP=CAO PSA OUR");
%>
但不能随便改别人的应用吧,如果x应用是自己开发的,就好说了。如果是其它公司可就不那么容易了。基于在ie中,如果访问过一次x应用,再登陆时也是可以的这种现在象,另一种解决方法就出来了。就是把form中提交的对象改为一个弹出页面。问题就解决了。代码如下所示:
<form style="display:none" target="" name="fm" method="post" action="x应用的登陆地址">
姓名:<input type="text" name="LoginName" value="administrator"><br>
密码:<input type="text" name="LoginPassword" value="administrator"><br>
</form>
function login(){
var openers = window.open("","test_open");
if(openers == null) {
alert("请允许本站点弹出窗口,否则部分功能无法正常使用!");
return;
}
fm.target = "openers";
fm.submit();
setTimeout(function(){
openers.close();
},1000);
}