J'ai essayé de faire quelque chose comme ça:
var msg = $.get("my_script.php");
Je pensais que msg serait défini sur le texte renvoyé par my_script.php, c'est-à-dire. le responseText de l'objet jqXHR. Apparemment, cela ne fonctionne pas comme ça car msg est toujours réglé sur "[objet XMLHttpRequest]"
Existe-t-il un moyen rapide de faire ce que je veux sur une seule ligne?
Merci.
Après quelques essais, j'ai fini par trouver une solution.
J'ai besoin que l'appel soit synchrone, la fonction de raccourci de $ .get est toujours asynchrone, je vais donc devoir utiliser $ .ajax, comme ceci:
var msg = $.ajax({type: "GET", url: "my_script.php", async: false}).responseText;
Je ne pense pas qu'il existe un meilleur moyen de le faire, merci pour vos réponses.
Vous pouvez toujours utiliser:
var msg;
$.get("my_script.php", function(text) {
msg = text;
});
Si, pour une raison quelconque, la réponse est textuelle, le script distant peut modifier le type de contenu en quelque chose comme JSON et jQuery essaie donc d'analyser la chaîne avant de vous envoyer le résultat.
La valeur de retour est simplement l'objet jqXHR utilisé pour la requête ajax. Pour obtenir les données de réponse, vous devez enregistrer un rappel.
$.get("my_script.php", function(data) {
var msg = data;
alert(msg);
});
Le texte de la réponse est disponible dans le rappel de réussite; faites ce que vous devez faire avec cela là-bas.