Récupérer JSON avec l'API StackOverflow
-
13-10-2019 - |
Question
Je veux récupérer les informations de mon profil Stack Overflow comme JSON en utilisant l'API.
J'utilise ce lien http: /api.stackoverflow.com/1.0/ utilisateurs / 401025 / .
Mais quand je fais la demande que je reçois un fichier contenant les données JSON. Comment puis-je gérer ce fichier en utilisant Ajax?
Voici mon code ( 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>
L'alerte est jamais tiré et req.responseText
semble être vide. Toutes les idées?
La solution
Remarque: Vous ne pouvez pas utiliser Ajax pour accéder à un autre domaine. (On appelle la politique même de domaine du
Cependant, l'API prend en charge StackOverflow callbacks JSONP, alors voici une solution:
Charger dans le script via une balise de <script>
.
Créer une fonction qui fait exactement cela:
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
}
Configurer la fonction de rappel:
function soResponse(obj) {
alert(obj.users[0].reputation);
}
Chargez!
load_script('http://api.stackoverflow.com/1.0/users/401025/?jsonp=soResponse');