系統集中部署----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!!!

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