跨域登录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){
			}
		});
	}

通过测试能够知足要求。

相关文章
相关标签/搜索