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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Firefox中从本地html文件调用Jenkins Json REST API而不更改服务器相关的知识,希望对你有一定的参考价值。

我尝试从本地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?

答案

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

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

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

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

以上是关于在Firefox中从本地html文件调用Jenkins Json REST API而不更改服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中从本地html文件中的链接开始新页面

Firefox中利用javascript调用本地程序

在Python中从Local执行Unix命令

Jenkins报错Caused: java.io.IOException: Cannot run program "sh" (in directory "D:Jenki(

如何在 C# 代码中从本地存储中检索值?

在thymeleaf spring框架中从本地目录插入图像(使用maven)