Recuperar JSON con API Stackoverflow
-
13-10-2019 - |
Pregunta
Quiero recuperar la información de perfil de desbordamiento de pila como JSON mediante la API.
Así que uso este enlace http: /api.stackoverflow.com/1.0/ usuarios / 401025 / .
Pero cuando hago la solicitud consigo un archivo que contiene los datos JSON. ¿Cómo puedo lidiar con ese archivo usando Ajax?
Aquí está mi código ( http://jsfiddle.net/hJhfU/2/ ):
<html>
<head>
<script>
var req;
getReputation();
function getReputation(){
req = new XMLHttpRequest();
req.open('GET', 'http://api.stackoverflow.com/1.0/users/401025/');
req.onreadystatechange = processUser;
req.send();
}
function processUser(){
var res = JSON.parse(req.responseText);
alert('test');
}
</script>
</head>
La alerta no se dispara y req.responseText
parece estar vacío. Algunas ideas?
Solución
Nota: No se puede usar Ajax para acceder a otro dominio. (Esto se llama el política del mismo dominio .)
Sin embargo, la API StackOverflow apoya devoluciones de llamada JSONP, por lo que aquí es una solución:
Cargar en la secuencia de comandos a través de una etiqueta <script>
.
Crea una función que hace precisamente eso:
function load_script(src) {
var scrip = document.createElement('script');
scrip.src = src;
document.getElementsByTagName('head')[0].appendChild(scrip);
return scrip; //just for the heck of it
}
Configurar la función de devolución de llamada:
function soResponse(obj) {
alert(obj.users[0].reputation);
}
De carga!
load_script('http://api.stackoverflow.com/1.0/users/401025/?jsonp=soResponse');