跨域登錄zabbix系統

背景:php

最近在作一個運維平臺,要從該平臺直接能夠聯入zabbix平臺的「事件詳情」頁面。ajax

考慮過的方法:json

1.單點登錄:在多個應用系統中,只須要登陸一次,就能夠訪問其餘相互信任的應用系統。(比較複雜工做量也比較大直接否認)。跨域

2.分析zabbix請求時攜帶的cookie數據,在後臺經過zabbixAPI接口獲取session_id寫入zabbix系統域下的cookie中。cookie

因爲跨域寫cookie也是比較麻煩,也否認了。session

3.在本系統中模擬zabbix登錄,創建zabbix會話。在之後的請求到zabbix頁面時能夠直接使用該會話進行請求。運維

要在本系統頁面經過ajax登錄zabbix系統,就要解決跨區post提交。post

請求路徑:http://11.202.16.28/zabbix/index.php?name=admin&password=admin123&autologin=1&enter=Sign+in測試

在zabbix的index.php中增長jsonp

header("Access-Control-Allow-Origin: *");//容許全部地址跨域請求

在本系統首頁執行

//同時進行zabbix登錄,創建會話
	function loginZabbix(){
		$.ajax({
			url:"${zabbixLoginUrl}",
			type:'post',
			// 下面的兩行代碼,就是解決跨域的關鍵
			xhrFields: {withCredentials: true},
		    crossDomain: true,
		    //就是上面的兩行代碼
		    dataType: 'jsonp',
			success:function(data){
			}
		});
	}

通過測試能夠知足要求。

相關文章
相關標籤/搜索