これが私がこれまでに試したことです。
<html>
<head>
<title>bugstats.com</title>
</head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://jquery-json.googlecode.com/files/jquery.json- 1.3.min.js"></script>
<script type="text/javascript" >
function hello(){
var myObject = {"method":"User.login", /* is this the right method to call? */
"params":[ { "login" :"user", /*should i include the login credentials here? */
"password" : "pass123" ,
"remember" : "True"} ] };
var enc = $.toJSON(myObject);
$.ajax({"contentType":"application/json",
"data": enc,
"crossDomain":"true",
"dataType": "json",
"url": "https://bugzilla.company.com/bugzilla/jsonrpc.cgi", /* is this correct or should it be https://bugzilla.company.com/bugzilla/jsonrpc.cgi?method=User.login? */
"type": "POST",
success: function(){
alert("Hallelujah");
console.log(arguments);
},
error: function () {
alert("Failed")
}
});
}
function parseResponse(obj){
alert("Success")
console.log(obj)
}
</script>
<body>
<h1>bugzilla.com</h1>
<input type="button" onclick="hello()" value="Click">
</body>
このJSONPRCを読んで、遠くまでは行かない。
ボタンをクリックすると-電話をかけ、ログイン/何かをするために-次のエラーが発生します-
OPTIONS https://bugzilla.company.com/bugzilla/jsonrpc.cgi 403 (Forbidden) jquery.min.js:19
XMLHttpRequest cannot load https://bugzilla.company.com/bugzilla/jsonrpc.cgi. Origin http://172.16.229.137 is not allowed by Access-Control-Allow-Origin.
私の理解では、「Access-Control-Allow-Origin」は「同一生成元ポリシー」の問題が原因で発生するため、「jsonp」を使用する必要があります。ただし、Jsonp-つまり、スクリプトインジェクションはGETリクエストを介してのみ実行できます。しかし、GETリクエストで同じJSスクリプトを試してみると、次のようになります。
code: 32610
message: "For security reasons, you must use HTTP POST to call the 'User.login' method."
Webサービスを介して接続/ログインする方法について混乱しているので、ここでは明らかに何かおかしなことをしています。誰かが接続してバグの詳細を取得するのを手伝ってくれるなら、大いに役立ちます。今8-10日..:(
ご参考までに:
サーバーにアクセスできません
クライアントをセットアップしていて、Bugzillaサーバーにアクセスしています
その他のリンク、