2010-10-18 1 views
1

Lorsque vous utilisez: -jQuery JSON - Pourquoi ai-je l'erreur suivante?

$.getJSON("admin.php?format=json", { module: "data", action: "allBusinessUnitsByClientName", clientname : $('#client').val() }, function(json) { 
    $.each(json.items, function(i,item){ 
     alert(i); 
    }); 
}); 

-je obtenir l'erreur suivante dans la console Firebug: -

a is undefined 
a))();else c.error("Invalid JSON: "+a)...f(d)if(i)for(f in a){if(b.apply(a[f], 

Le Json retourné est dans le format suivant: -

{"550":"Test 1","547":"Test 2","549":"Test 3"} 

Répondre

4

Vous obtiennent ceci parce que json.items est undefined ici, vous voulez juste json (votre objet étant retourné, qui h comme aucune propriété items), comme ceci:

$.getJSON("admin.php?format=json", { module: "data", action: "allBusinessUnitsByClientName", clientname : $('#client').val() }, function(json) { 
    $.each(json, function(i,item){ 
     alert(i); 
    }); 
}); 
+0

Ajouter Je vois, merci. Existe-t-il un moyen de valider une demande JSON? Par exemple, en utilisant $ .ajax ({}), je pourrais utiliser le succès ou l'erreur pour vérifier si l'appel a réussi. –

+0

@ user275074 - Si le JSON lui-même est invalide, la requête échouera silencieusement, vous pouvez tester votre sortie JSON ici: http://www.jsonlint.com/ Si vous voulez des problèmes d'erreurs générales, timeout, accès refusé toute erreur serveur, etc, alors oui, utilisez le rappel 'error'. Ces articles sont-ils ce que vous voulez dire? –

+0

Oui, j'aimerais utiliser un Ajaxloader pendant le chargement du contenu. Si je devais utiliser $ .ajax() j'utiliserais onBeforeLoad (je pense). –