在Firefox中从本地html文件调用Jenkins Json REST API而不更改服务器

问题描述 投票:1回答:1

我尝试从本地jenkins REST API获取JSON格式的数据。我用javascript写了一个小的html网站来检索数据。

可悲的是,我的浏览器太偏执了,不能让这种情况发生。我无法控制浏览器配置。 (我们的管理员对于玩这些设置的人非常肛门)。

这是脚本:

<!doctype html>
<html lang="en">

<head>
  <title>Test</title>

  <script>
  function UserAction() {

    console.log("Call Jenkins");

    var script = document.createElement('script');
    script.src = "http://the.local.jenkins:1234/api/json?callback=foo";
    // script.type = "application/json";
    document.getElementsByTagName('head')[0].appendChild(script);
  }

  function foo(result) {

    console.log("callback!");

    var json = JSON.parse(result);

    console.log(json.mode);
  };
  </script>

</head>

<body>
  <button type="submit" onclick="UserAction()">Search</button>
</body>

</html>

有了这个,我在解析“脚本”时会出现语法错误。好的是,JSON数据就在那里。不好的是,它不可用。当我在该行中注释以将该类型声明为JSON时,错误消失并且没有任何反应。

事实是,我不想改变jenkins安装(安装一些CORS插件)。有没有办法从远程域加载DATA?

json rest firefox jenkins cross-domain
1个回答
0
投票

除非您可以说服您的管理员更改设置,否则无法通过浏览器完成此操作,因为您实际上正在执行XSS攻击。

您必须使用PHP或类似方法在网页的服务器端执行此操作

<?php    $url = 'http://the.local.jenkins:1234/api/json'; $htm = file_get_contents($url); echo $htm;?> 

注意:上面的代码只会转储整个Jenkins页面,但我不太了解PHP,可以完全按照您的要求进行操作。

© www.soinside.com 2019 - 2024. All rights reserved.