在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而不更改服务器的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins报错Caused: java.io.IOException: Cannot run program "sh" (in directory "D:Jenki(