私はこれを解決しようとして 3 日間戦ってきましたが、「Google の過負荷」が発生しました - 助けていただければ幸いです。
Jenkins ビルド サーバーが配置されてhttp://jenkinsBuild.mycompany.com:8080
いるので、この URL をブラウザーに入力すると...
http://jenkinsBuild.mycompany.com:8080/view/my_view/job/build_me/123/api/json?tree=result
...ブラウザのページが表示されます...
{"result":"SUCCESS"}
現在、Jenkins Wikiによると、「Jenkins はマシンで消費可能なリモート アクセス API をその機能に提供しています」REST API を介して json と jsonp をサポートしており、同じオリジン ポリシーの問題を回避できるはずです。
私は(最新のChromeブラウザを使用して)同じjsonコンポーネントを取得しようとしています{"result":"SUCCESS"}
。
$.getJSON()
以下に説明するように、呼び出しで HTML/javascript を使用しています。HTML ファイルは現在、私のローカル マシン上にありますが、最終的には wiki 上に存在することになるでしょう。3 つの URL のコンソール出力は、コードの後にリストされています。
URL をブラウザに直接入力して取得したのと同じ json 結果を取得するにはどうすればよいですか? ご協力いただきありがとうございます。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
var url1 = "http://jenkinsBuild.mycompany.com:8080/view/my_view/job/build_me/123/api/json?tree=result";
var url2 = "http://jenkinsBuild.mycompany.com:8080/view/my_view/job/build_me/123/api/json?tree=result&callback=?";
var url3 = "http://jenkinsBuild.mycompany.com:8080/view/my_view/job/build_me/123/api/json?callback=?&tree=result";
$('button').click(function(){
$.getJSON(url1, function(json) {
$("#reply").append("got callback: " + json);
});
});
});
</script>
</head>
<body>
<button>Get Jenkins</button><br />
<div id="reply">
</div>
</body></html>
3 つの URL のコンソール出力...
url1 -> XMLHttpRequest cannot load http://jenkinsBuild.mycompany.com:8080/view/my_view/job/build_me/123/api/json?tree=result. Origin null is not allowed by Access-Control-Allow-Origin.
url2 -> Uncaught SyntaxError: Unexpected token : json:1
url3 -> Uncaught SyntaxError: Unexpected token : json:1