通过网站连接到 Nagios Api

Connecting to Nagios Api via Website

我正在尝试通过网站连接到我的 Nagios 服务器以显示 Nagios 服务器上主机的状态。

我有 运行 curl 命令,我收到了 json 响应并且它有效。但是现在,当我尝试连接网络应用程序时,它 jQuery 给我一个 GET 401 未经授权的错误。

jquery-3.1.0.js:9392 GET http://41.87.218.55/nagios/cgi-bin/objectjson.cgi?query=hostlist&parenthost=none&childhost=none 401 (Unauthorized)
send  @ jquery-3.1.0.js:9392
ajax @ jquery-3.1.0.js:8999
getData @ myJavaAng.js:187
(anonymous function) @ myJavaAng.js:203

我的代码:

function getData() {
  var name, code;
  var serviceURL = "http://test:welcome@41.87.218.55/nagios/cgi-bin/objectjson.cgi?query=hostlist&parenthost=none&childhost=none";
  $.support.cors = true;
  $.ajax({
    type: "GET",
    dataType: "json",
    crossDomain: true,
    url: serviceURL,
    success: function(data) {
      alert(data);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
      console.log(errorThrown);
    }
  });
}

请让我知道我做错了什么。

这是写给和我有同样问题的人的。

nagios 服务器不接受我用来连接 API 的 Javascript 或 jQuery。这是因为同源策略。

这是一个简单的 PHP 脚本,它可以做同样的事情。

<?php
$url = 'http://test:welcome@41.87.218.55/nagios/cgi-bin/objectjson.cgi?query=hostlist&parenthost=none&childhost=none';
$obj = json_decode(file_get_contents($url), true);

print_r($obj);
?>

希望这对遇到同样问题的人有所帮助。