Je tente d'analyser JSON à l'aide de jQuery et je rencontre des problèmes. En utilisant le code ci-dessous, les données revient toujours null:Problème lors de la récupération du résultat JSON avec jQuery dans Firefox et Chrome (IE8 Works)
<!DOCTYPE html>
<html>
<head>
<title>JSON Test</title>
</head>
<body>
<div id="msg"></div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$.ajax({
url: 'http://datawarehouse.hrsa.gov/ReleaseTest/HGDWDataWebService/HGDWDataService.aspx?service=HC&zip=20002&radius=10&filter=8357&format=JSON',
type: 'GET',
dataType: 'json',
success: function(data) {
$('#msg').html(data[0].title); // Always null in Firefox/Chrome. Works in IE8.
},
error: function(data) {
alert(data);
}
});
</script>
</body>
</html>
Les résultats JSON ressemblent à ce qui suit:
{"title":"HEALTHPOINT TYEE CAMPUS","link":"http://www.healthpointchc.org","id":"tag:datawarehouse.hrsa.gov,2010-04-29:/8357","org":"HEALTHPOINT TYEE CAMPUS","address":{"street-address":"4424 S. 188TH St.","locality":"Seatac","region":"Washington","postal-code":"98188-5028"},"tel":"206-444-7746","category":"Service Delivery Site","location":"47.4344818181818 -122.277672727273","update":"2010-04-28T00:00:00-05:00"}
Si je remplace mon URL avec l'URL de l'API Flickr (http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?), je reçois retour un résultat JSON valide que je suis capable de faire usage de.
J'ai réussi à valider mon JSON au JSONLint, donc je n'ai plus d'idées sur ce que je pourrais faire de mal.
Des pensées?
Mise à jour: J'ai demandé au client de passer le type de contenu à application/json. Malheureusement, je rencontre toujours le même problème. J'ai également mis à jour mon HTML et inclus l'URL en direct avec laquelle j'ai travaillé.
Mise à jour 2: Je viens de faire un essai dans IE8 et cela fonctionne très bien. Pour une raison quelconque, cela ne fonctionne pas dans Firefox 3.6.3 ou Chrome 4.1.249.1064 (45376). J'ai remarqué une erreur avec les données retournées (le développeur retourne une collection de données, même pour les requêtes qui retourneront toujours un seul enregistrement), mais cela me déconcerte encore pourquoi cela ne fonctionne pas dans d'autres navigateurs.
Il peut être important de noter que je travaille à partir d'un fichier HTML sur mon système de fichiers local. Je pensais que cela pourrait être un problème XSS, mais cela n'explique pas pourquoi Flickr fonctionne.
Quel est le code de réponse? Pouvez-vous essayer de passer à un appel '$ .ajax()' et de vérifier les erreurs dans votre appel? – justkt