La notation par points permet d'accéder aux objets avec un '.' Impossible de comprendre pourquoi cela se produit. J'ai la fonction de réussite suivante, dans le cadre d'une fonction jQuery $ .ajax.

success: function(data){
  console.log('data = ' + data);
  console.log('data.president = ' + data.president);
  console.log('data.adviser = ' + data.adviser);
}

Cela se traduit étrangement par le journal de navigateur suivant:

data = {"president":1,"adviser":1}
data.president = undefined
data.adviser = undefined

Je dois manquer quelque chose de douloureusement évident. Quelqu'un peut-il m'éclairer?

3
cdwyer 8 mars 2016 à 18:25

3 réponses

Meilleure réponse

Les données devraient être un objet accessible par un point .. C'est une chaîne maintenant. Vous devez l'analyser en utilisant par exemple:

data = JSON.parse(data);
6
jdabrowski 8 mars 2016 à 16:03

Vous définissez les éléments données a des chaînes , les attributs d'un objet doivent être déclarés sans guillemets, comme ceci:

data = {president:1,adviser:1}

Dans ce cas, vous avez obtenu le résultat attendu

data.president = 1
data.adviser = 1
0
cromerou 8 mars 2016 à 15:49

Définissez dataType: "json" comme option ajax pour que jQuery analyse votre chaîne data en objet javascript

4
A. Wolff 8 mars 2016 à 15:30