2010-02-09 9 views
0

J'ai un appel ajax via jquery qui s'exécute sans erreur jusqu'à ce que j'arrive au rappel. Le contenu retourné ressemble à ceci:Rappel Jquery Ajax

{"UPSELLABLE":true,"OFFERTEXT":"p47r.cfm"} 

Simplement en alerte (upselldata); alertera les données ci-dessus. Mais si j'essaie d'accéder à des upselldata variables comme un objet javascript (je pensais que jquery a déjà fait l'eval pour moi), les variables sont indéfinies. Voir le code ci-dessous:

 $.ajax({ 
     type: "POST", 
     datatype: "json", 
     data: "ProductID=1", 
     url: '/templates/public/upsell_available.cfm', 
     success: function(upselldata) {    
      alert(upselldata.UPSELLABLE); // upselldata.upsellable is undefined!?!?! 
     } 
     }); 

Répondre

2

Utilisez "dataType" et non "datatype". Javascript est sensible à la casse, par conséquent, jQuery ignore votre paramètre.

Notez que jQuery peut détecter automatiquement le type de données si vous définissez correctement les en-têtes dans la réponse (je suppose que vous le renvoyez sous forme de texte).

+0

Haha, bingo. Bon oeil. – Darthg8r

+0

+1 Je n'ai jamais su que l'appel jQuery de base renvoyait un objet JavaScript – Damien