Ecco quello che ho provato soo lontano ..Bugzilla - webservice tramite JSON-RPC
<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>
lettura su questo JSONPRC, non ricevendo più lontano.
Quando fa clic sul pulsante - effettuare una chiamata, il login/fare qualsiasi cosa per quella materia - ottengo il seguente errore -
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.
Dalla mia comprensione, "Access-Control-Allow-Origin" è causato a causa del problema "stessa politica di origine" e quindi dovrei usare "jsonp". Ma, JSONP - i.e, l'iniezione di script può essere eseguita solo tramite la richiesta GET. Ma, se provo lo stesso script JS con una richiesta GET - ottengo il seguente:
code: 32610
message: "For security reasons, you must use HTTP POST to call the 'User.login' method."
confuso su come collegare/login tramite i servizi Web, sto chiaramente facendo qualcosa di stupido qualcosa niente male qui .. sarebbe un grande aiuto se qualcuno può aiutarmi a connettersi e prendere il details.I've bug stato esso dal 8-10 giorni ora .. :(
FYI:
faccio non avere accesso al server
Sono su una configurazione client e che accedono al server Bugzilla
Altri link,
Google Groups - Live conversation
Se provo il frammento di codice di cui sopra, vale a dire. Raw 'myObject' per jQuery da elaborare - ottengo l'errore =>' codice: 32000 messaggio: "Impossibile analizzare l'argomento 'params' come JSON valido. Errore: stringa JSON non valida, né array, oggetto, numero, stringa o atom, con carattere offset 1 (prima di "oggetto Object") a Bugzilla/WebService/Server/JSONRPC.pm riga 169. Valore: [oggetto Object] "', Ma la stringa json che ho dato è come da metodo prescritto . Se includo il metodo 'toJson' prima di inviare - ricevo' per favore includi un metodo prima di inviare una richiesta ', si presenta un errore .. –
@VivekChandra Oops, codificato un po' troppo veloce, per favore vedi l'aggiornamento che dovrebbe avere tutte le codifiche giuste nei posti giusti. – blahdiblah
Ha funzionato .. :) .. grazie mille, ma ho una piccola domanda - nel [__Doc__] (http://www.bugzilla.org/docs/4.2/en/html/api/Bugzilla/WebService.html #CALLING_METHODS) dice che anche un array è accettato !, quindi perché la stringa viene accettata e non quando params era un array ??. –