2009-12-12 3 views
1

J'utilise jQuery pour récupérer des données JSON. Je l'ai stocké dans une variable appelée "ajaxResponse". Je ne peux pas tirer des points de données hors de celui-ci; Je reçois ajaxResponse.blah n'est pas défini. typeof est une chaîne. Je pensais que ça devrait être un objet.Impossible d'interroger JSON à l'aide de jQuery

var getData = function (url) { 
     var ajaxResponse = ""; 
     $.ajax({ 
     url: url, 
     type: "post", 
     async: false, 
     success: function (data) { 
       ajaxResponse = data; 
     } 
     }); 
     return ajaxResponse; 
    }, 

...

typeof ajaxResponse; // string 

ajaxResponse.blah[0].name // ajaxResponse.blah is not defined 

Répondre

1

assurez-vous de spécifier l'option dataType = json

$.ajax({ 
    url: url, 
    type: "post", 
    dataType: "json", 
    async: false, 
    success: function (data) { 
      ajaxResponse = data; 
    } 
    }); 
+0

aw man! merci :) mon mauvais, ne sais pas où cela est allé à – alan

+0

Comment se fait le type est post? cela serait-il? Thanx –

0

Q8-codeur a le droit de celui-ci, mais pour vous donner quelques détails: votre serveur est vraiment en train de renvoyer une chaîne que vous avez formatée en JSON. Vous devez indiquer à jQuery à quoi vous attendre, sinon il suppose simplement qu'il a reçu une chaîne.

Ajouter ce qui suit à vos options de .ajax $:

dataType: "json" 

Aussi, reportez-vous à la jQuery API des exemples et la documentation de ces options.

Questions connexes