背景: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){ } }); }
通過測試能夠知足要求。