web-dev-qa-db-fra.com

Comment récupérer la propriété responseJSON d'un objet jquery $ .ajax

J'ai ce javascript:

$ajax = $.ajax({
    type: 'GET',
    url: 'DBConnect.php',
    data: '',
    dataType: 'json', 
    success: function(data) {},
    error:function (xhr, ajaxOptions, thrownError) {
        dir(thrownError);
        dir(xhr);
        dir(ajaxOptions);
    }
});
console.dir($ajax);
console.dir($ajax.responseJSON);

console.dir ($ ajax) montre qu'il a une propriété nommée responseJSON, mais lorsque j'essaie d'y accéder avec $ ajax.responseJSON, il renvoie undefined: enter image description here

14
red888

Bien sûr, ce n'est pas défini, car au moment où vous exécutez console aux dernières lignes de votre code, la réponse n'est pas encore venue du serveur.

$.ajax Renvoie promesse, que vous pouvez utiliser pour attacher des rappels done() et fail(), où vous pouvez utiliser toutes les propriétés que vous voyez. Et vous avez en fait utilisé le rappel error et success, et c'est là que vous pouvez exécuter du code et d'autres fonctions qui s'appuient sur les données dans la réponse.

16
Yura

Vous pouvez utiliser cette astuce pour obtenir la réponse:

jQuery.when(
    jQuery.getJSON('DBConnect.php')
).done( function(json) {
    console.log(json);
});

Il est tard mais j'espère que cela aidera les autres.

7
Aria Radmand

La réponse, ce sont les "données", en cas de succès ... afin que vous puissiez accéder à ces données d'écriture [0], données [1], à l'intérieur du succès.

Par exemple:

success: function(data) {
 alert(data[0]);
},

Si vous voulez cette réponse, hors du succès, vous pouvez définir une variable à l'extérieur et essayez ceci:

success: function(data) {
 myVar = data;
},

J'espère que cette aide.

0
Ferchi