Pourquoi mon jqxhr.responseText variable non définie, lorsqu'elle est définie dans l'objet xhr?
J'ai un réel simple jquery obtenir de l'appel, ici, et je veux utiliser la réponse plus tard dans le script. Donc, si je fais ceci:
var xhr = $.get('cfc/partsDefinition.cfc',{
method: 'checkValid',
search: 'some search string'
}
);
console.log(xhr);
console.log(xhr.responseText);
Je peux voir que A) le premier journal montre un valide jqxhr objet, avec une propriété responseText ensemble à ce que j'attends...
promise: function (a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}
readyState: 4
responseText: "0"
setRequestHeader: function (a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this}
mais B) le deuxième journal affiche "undefined". Ce qui me manque ici?
Votre technique spécifique au point de ne sembler un peu étrange, mais je suppose que la question est.... pourquoi avez-vous besoin d'elle à ce point? Puisque vous faites une requête asynchrone, la valeur que vous aurez envie de travailler avec ne sera pas encore disponible, et seulement seront disponibles dans une fonction de rappel (que je vois vous n'avez pas fourni).
Je suis assez nouveau à l'aide d'ajax pour être dangereux, j'imagine... j'avais essayé d'utiliser une fonction de rappel pour affecter le contenu de réponse à une variable js, mais l'avait oublié les ramifications de la partie asynchrone de l'ajax. J'AI donc utiliser la variable de réponse à l'intérieur de la fonction de rappel OU d'utiliser un appel asynchrone... ce que j'ai essayé, mais obtenir des résultats inattendus pour le responseText (une page html nommée "Composant Navigateur de Connexion", qui comprend un formulaire de "Entrez votre RDS ou Admin mot de passe ci-dessous"). Semble comme une question à la poste.
p.s. après avoir dit tout cela, je ne comprends toujours pas pourquoi la console.journal montre un valide, entièrement formé xhr objet, mais le journal de xhr.responseText montre pas défini.
Je suis assez nouveau à l'aide d'ajax pour être dangereux, j'imagine... j'avais essayé d'utiliser une fonction de rappel pour affecter le contenu de réponse à une variable js, mais l'avait oublié les ramifications de la partie asynchrone de l'ajax. J'AI donc utiliser la variable de réponse à l'intérieur de la fonction de rappel OU d'utiliser un appel asynchrone... ce que j'ai essayé, mais obtenir des résultats inattendus pour le responseText (une page html nommée "Composant Navigateur de Connexion", qui comprend un formulaire de "Entrez votre RDS ou Admin mot de passe ci-dessous"). Semble comme une question à la poste.
p.s. après avoir dit tout cela, je ne comprends toujours pas pourquoi la console.journal montre un valide, entièrement formé xhr objet, mais le journal de xhr.responseText montre pas défini.
OriginalL'auteur earachefl | 2012-01-19
Vous devez vous connecter pour publier un commentaire.
C'est montrer
undefined
parce qu'à ce point dans le code, il n'EST pas défini. AJAX est Asynchrone, ce qui signifie qu'il ne peut pas se terminer avant le code après c'est couru. LeresponseText
sera pas défini jusqu'à ce que l'appel ajax est terminée. Voici un exemple:OriginalL'auteur Kevin B
Convenu, vous êtes probablement le dumping lorsqu'il n'y est pas; essayez d'ajouter une gestion d'erreur:
Dans jQuery
get()
abréviation n'ont pas intégré de gestion des erreurs qu'il supprime. Donc, si vous essayez d'attraper quelque chose que vous devez faire vos propres gestionnaires d'erreur.http://api.jquery.com/ajaxError/
OriginalL'auteur ShortRound1911