zurück responseText von jQuery.get()
Habe ich versucht, so etwas zu tun :
var msg = $.get("my_script.php");
Ich dachte msg eingestellt werden würde, um die zurückgegebenen text durch my_script.php,d.h. den responseText des jqXHR-Objekt.
Es ist anscheinend nicht so funktionieren wie msg ist immer "[object XMLHttpRequest]"
Gibt es eine schnelle 1-Linie Weg, das zu tun, was ich will?
Dank.
Das wird sicherlich funktionieren, aber ein synchroner Aufruf wird offensichtlich blockieren Sie die Ausführung von code. Wenn Sie brauchen, um die Arbeit mit den zurückgegebenen Wert in msg-es ist in der Regel (obwohl nicht immer) besser, mit ihm zu arbeiten innerhalb der callback-itslef, wie vorgeschlagen von @Vitor-Mello. Denke, es hängt, wenn Sie können bewegen Sie Ihren code in die callback-Funktion.
Dies ist die beste Lösung
Könnten Sie fügen Sie Ihre eigene Lösung als eine Antwort? Es ist das einzige, das funktioniert für mich.
Dies ist die beste Lösung
Könnten Sie fügen Sie Ihre eigene Lösung als eine Antwort? Es ist das einzige, das funktioniert für mich.
InformationsquelleAutor Yann Milin | 2011-09-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach einigen Tests, landete ich nach einer Lösung suchen.
Muss ich den Aufruf synchron, $.Holen Sie das Kürzel-Funktion ist immer asynchonous, so dass ich brauchen, um den $.ajax, wie diese:
Ich glaube nicht, dass es einen besseren Weg, dies zu tun, vielen Dank für Eure Antworten.
Mit dieser Linie, ich hab Folgendes in meinem browser-Konsole: jquery-2.2.0.min.js:4 Synchrone XMLHttpRequest-über den Haupt-thread veraltet ist, wegen seiner schädlichen Auswirkungen auf die Endbenutzer. Für weitere Hilfe, check xhr.spec.whatwg.org
jetzt mit async: false " ist veraltet
InformationsquelleAutor Yann Milin
Können Sie immer verwenden:
Wenn aus irgendeinem Grund die Antwort wird der text, das Skript remote verändert werden könnte, den content-type zu etwas wie JSON und damit jQuery versucht, parse den string vor der Ausgabe an Sie.
ok. Änderte den code zu reflektieren, das gewünschte Verhalten =)
Hey, es gibt 2 Probleme mit deinen aktualisierten code, msg kann nicht zugegriffen werden innerhalb der callback-Funktion, ohne Sie zu deklarieren Global. Aber selbst wenn Sie dies tun, wird der Aufruf asynchron ist, werden Sie meist versuchen, msg, bevor der Aufruf von my_script.php ist getan. Ich aktualisiert meine Frage, um diese zu reflektieren. Danke.
InformationsquelleAutor Vitor M
Der Rückgabewert ist einfach das jqXHR-Objekt verwendet, für den ajax-request. Auf die Antwort, die Daten, die Sie brauchen, um einen Rückruf zu registrieren.
InformationsquelleAutor njr101
Den Antwort-text steht in der Erfolgs-callback; tun, was Sie tun müssen, um mit ihm dort.
var msg = '';$.get("my_script.php", function(data){msg = data.responseText});
hier in der callback-Funktion, msg zugegriffen werden können.Rufen Sie eine Funktion, die setzt die Globale Wert, oder verwenden Sie einen Abschluss, um den Wert eines Objekts oder Moduls.
können Sie ein Beispiel geben, wo es setzt einen globalen Wert?
Zwei andere Antworten zeigen setzen einer variable in der Erfolgs-callback. So legen Sie eine Globale definieren nicht, was du bist-Einstellung mit einem
var
. Dies ist riskant, und sehr abhängig vom Glück, timing, es sei denn, du tust es async, die Niederlagen der Zweck.InformationsquelleAutor Dave Newton