2011-03-25 4 views
0

Ceci me donne des maux de tête, ENCORE. Je ne comprends pas du tout cette réponse ajax du tout, ou c'est mal codé.ne peut pas obtenir une réponse de jquery/ajax

Établissons un extrêmement simple exemple de travailler avec:

register.php:

<?php 
echo 'I want some response !!'; 
?> 

appel ajax:

$.ajax({ 
url: '/register.php', 
type: 'POST', 
data: $('#form-registracia').serializeArray(), 
success: function(e){ 
    var response = e.responseText; 
    alert(response); 
} 
}); 

Alert dit non défini. Pourquoi? J'ai essayé de jouer avec ça pendant des heures maintenant, j'ai lu le site de jquery, rien n'y fait. Je suis sûr que le fichier PHP est exécuté et que l'écho est renvoyé à ajax.

Merci d'avance!

+0

Je suggère d'utiliser firebug avec 'console.log'. Vous pouvez également définir un gestionnaire d'erreurs si vous recevez une erreur 404 ou 403 du serveur. – zzzzBov

+1

Avez-vous essayé de placer le paramètre de la fonction de succès "e" dans l'alerte au lieu de "réponse"? Peut-être que c'est le problème ^^ –

Répondre

0

vous n'êtes pas défini car la réponse renvoyée par le serveur est contenue dans e, pas e.responseText. responseText est une propriété de l'objet XHR, mais jQuery encapsule cela pour vous et fournit le responseText en tant qu'argument dans la méthode de succès.

si bref, changer à ceci:

succès: function (e) {var réponse = e; alerte (réponse); }

0

L'argument de "succès" est le texte de la réponse lui-même; vous demandez une chaîne pour son membre responseText, qui est en effet indéfini. Utilisez simplement l'argument directement.

Il existe une forme à trois arguments de la fonction de succès dans laquelle le dernier argument est l'objet XHR que vous recherchez.

0

essayez l'alerte (e). Vous n'envoyez pas d'objet, donc e n'a pas de propriété responseText (c'est juste du texte). Dans le cas où vous souhaitez voir la requête dès qu'elle atteint votre navigateur, utilisez ou firebug pour voir les en-têtes de requête et de réponse.

0

Vous devez lire le jQuery api un peu mieux:

success(data, textStatus, jqXHR)Function, Array

Une fonction à appeler si la requête réussit. La fonction reçoit trois arguments: Les données renvoyées par le serveur, formatées en fonction du paramètre dataType; une chaîne décrivant le statut; et l'objet jqXHR (dans jQuery 1.4.x, XMLHttpRequest). À partir de jQuery 1.5, le paramètre de réussite peut accepter un ensemble de fonctions. Chaque fonction sera appelée à son tour. Ceci est un événement Ajax.

Le premier paramètre du rappel de réussite est vos données. Vous devriez taper alert(e).

Questions connexes