Ich möchte einen Ajax-Aufruf ausführen, sobald ein Dokument geladen ist. Ich lade gerade einen String, der Daten enthält, die ich für eine Autocomplete-Funktion verwenden werde. Dies ist, was ich getan habe, aber es ruft das Servlet nicht auf.
Ich habe die Aufrufe für die verschiedenen JS-Skripts entfernt, um sie klarer zu machen. Ich habe mehrere ähnliche AJAX-Aufrufe in meinem Code ausgeführt, aber normalerweise ausgelöst durch ein Klickereignis, bin ich nicht sicher, welche Syntax dafür verwendet wird, sobald das Dokument geladen wird, aber ich dachte, das wäre es (aber es ist nicht):
%Vor%BEARBEITEN: mein Code sieht jetzt eher wie Karims aus:
%Vor%Trotzdem funktioniert die automatische Vervollständigung immer noch nicht (zugegeben, eine andere Frage überhaupt, also werde ich auch eine andere Frage stellen, damit sie einen passenden Titel hat).
Meine Variable "Daten", die zurückgeschickt wird, sieht aus wie ... "Manuskript | Text | Informationsobjekt | Basketball | Ball | Sportausrüstung | Tarantula" .split ("|");
Wenn ich das tue
%Vor%und dann
%Vor%Alles funktioniert gut, aber wenn ich den Wert von dataArray vom Server bekomme, tut es das nicht.
Sie müssen jQuery laden, bevor Sie Aufrufe an die jQuery-API senden.
Laden Sie jQuery ...
vor dem Code-Snippet %Vor% Sie stoßen auf dieses Problem, weil der Aufruf von $ .ajax nicht zurückgibt, bevor die automatische Vervollständigung aufgrund der asynchronen Natur von XHR initialisiert wird. Die Anfrage wird gesendet, die Ausführung fließt in den nächsten Ausdruck, bevor dataArray
innerhalb des success
Callbacks gefüllt wurde. Versuchen Sie Folgendes:
Dadurch wird sichergestellt, dass Ihre automatische Vervollständigung nur initialisiert wird, wenn die Antwort vom Server empfangen wurde.
Verwenden Sie einfach
%Vor%Stellen Sie außerdem sicher, dass die Antwort wirklich ein JSON ist. Wenn das Servlet den Fehler angibt, wird es in Ihrem Fall nicht korrekt verarbeitet. Verwenden Sie Firebug, um festzustellen, ob das Servlet aufgerufen wird und wie die Antwort lautet. Oder führen Sie eine minimale Protokollierung auf der Serverseite durch.
Sie können die Google Chrome Browser-Entwicklertools verwenden, um zu sehen, was Ihr Server zurückgibt. Um auf Strg + Umschalt + I zuzugreifen und in der Developer Tool-Ansicht, überprüfen Sie die Netzwerk-Registerkarte, um mögliche Fehler oder falsche Daten zu sehen.
Ich möchte einen Ajax-Aufruf ausführen, sobald ein Dokument geladen ist. Ich lade gerade einen String, der Daten enthält, die ich für eine Autocomplete-Funktion verwenden werde. Dies ist, was ich getan habe, aber es ruft das Servlet nicht auf.
Ich habe die Aufrufe für die verschiedenen JS-Skripts entfernt, um sie klarer zu machen. Ich habe mehrere ähnliche AJAX-Aufrufe in meinem Code ausgeführt, aber normalerweise ausgelöst durch ein Klickereignis, bin ich nicht sicher, welche Syntax dafür verwendet wird, sobald das Dokument geladen wird, aber ich dachte, das wäre es (aber es ist nicht):
%Vor%BEARBEITEN: mein Code sieht jetzt eher wie Karims aus:
%Vor%Trotzdem funktioniert die automatische Vervollständigung immer noch nicht (zugegeben, eine andere Frage überhaupt, also werde ich auch eine andere Frage stellen, damit sie einen passenden Titel hat).
Meine Variable "Daten", die zurückgeschickt wird, sieht aus wie ... "Manuskript | Text | Informationsobjekt | Basketball | Ball | Sportausrüstung | Tarantula" .split ("|");
Wenn ich das tue
%Vor%und dann
%Vor%Alles funktioniert gut, aber wenn ich den Wert von dataArray vom Server bekomme, tut es das nicht.
Verwenden Sie einfach
%Vor%Stellen Sie außerdem sicher, dass die Antwort wirklich ein JSON ist. Wenn das Servlet den Fehler angibt, wird es in Ihrem Fall nicht korrekt verarbeitet. Verwenden Sie Firebug, um festzustellen, ob das Servlet aufgerufen wird und wie die Antwort lautet. Oder führen Sie eine minimale Protokollierung auf der Serverseite durch.
Tags und Links jquery ajax initialization