Esto es lo que he intentado taaan lejos ..Bugzilla - servicio web a través de 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>
lectura sobre esta JSONPRC, no conseguir lejos.
Cuando hago clic en el botón - hacer una llamada, para iniciar sesión/hacer nada para el caso - me sale el siguiente error -
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.
Desde mi entender, "Access-Control-Allow-Origen" es causado por el problema de "la misma política de origen" y, por lo tanto, debería usar "jsonp". Pero, Jsonp - es decir, la inyección de scripts solo se puede hacer a través de la solicitud GET. Sin embargo, si intento el mismo script JS con una petición GET - Me sale el siguiente:
code: 32610
message: "For security reasons, you must use HTTP POST to call the 'User.login' method."
confundido acerca de cómo conectar/inicio de sesión a través de los servicios web, que estoy haciendo algo tonto claramente algo mal aquí mayormente .. sería una gran ayuda si alguien puede ayudar a conectar y buscar el fallo details.I've estado en él desde 8-10 días ahora .. :(
FYI:
hago no tener acceso al servidor
Estoy en una instalación de cliente y servidor de acceso a Bugzilla
Otros enlaces,
Google Groups - Live conversation
si intento el fragmento de código anterior, es decir. Raw 'myObject' para jQuery procesar - obtengo el error =>' código: 32000 mensaje: "No se pudo analizar el argumento 'params' como JSON válido. Error: cadena JSON malformada, ni matriz, objeto, número, cadena o átomo, en el carácter desplazamiento 1 (antes de "Objeto objeto") en Bugzilla/WebService/Server/JSONRPC.pm línea 169. Valor: [object Object] "', Pero la cadena json que he dado es según el método prescrito . Si incluyo el método 'toJson' antes de enviar - obtengo' por favor incluya un método antes de enviar una solicitud'' aparece el error .. –
@VivekChandra ¡Uy, codificado eso demasiado rápido, por favor vea la actualización que debería tener todo el codificaciones correctas en los lugares correctos. – blahdiblah
Funcionó ... :) .. gracias un millón, pero tiene una pequeña pregunta - en el [__Doc__] (http://www.bugzilla.org/docs/4.2/en/html/api/Bugzilla/WebService.html #CALLING_METHODS) ¡dice que incluso una matriz es aceptada !, entonces ¿por qué se acepta la cadena y no cuando params es una matriz? .. –