系统集中部署----js模拟登陆,打开页面后调用POST提交参数

由于公司平台系统众多,部署较为分散给客户演示时一时难以找到所有系统,且不同系统登陆的用户不同,每个系统需要记录不同的用户,也给演示带来了一定的难度。为此,计划将公司所有系统部署在同一台服务器上,然后用一个简单的静态界面列出所有系统,实现类似对所有系统的列表管理,同时实现点击系统链接时,自动登录的效果。
公司系统基本使用同一框架和模式实现,这为系统点击自动登录创造了一定的便利。当前系统中所使用的登录方式都是POST提交用户名和密码,登录成功后返回界面HTML的方式来实现。
实现的基本思路为:点击链接,跳转新页面打开登录后的系统。根据这个思路,所需做的事为两步:
1、打开一个新页面,常用的为调用window.open()方法 。
2、在打开的新页面中自动传递用户参数,返回并显示登录后的界面,较容易想到的是自己构造一个form,自动提交参数代码。
整理后,实现如下:

<h4><a class="login-href" data-url="http://192.168.0.101:8001/Account/Login" data-username="test" data-password="123" "loginSystem(this)"><h4>打开新平台</h4></a></h4>
<script type="text/javascript">
  		function loginSystem(evt) {
  			//evt.preventDefault();
  			var url=$(evt).data('url');
  			var username=$(evt).data("username");
  			var pwd=$(evt).data("password");


  			var formStr = '<form style="visibility:hidden;" method="POST" action="' + url + '">' +
                        '<input type="hidden" name="UserName" value="' + username + '" />' +
                        '<input type="hidden" name="Password" value="' + pwd + '" />'+
                        '</form>';

			var win = window.open("", "_blank");
			win.document.body.innerHTML = formStr;
			win.document.forms[0].submit();
  		}
  	</script>

需要特别注意调用的是当前document还是新打开的document,此方法调试时,断点会报错,但实际效果能够实现。

GOOD LUCK!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章