hatte ich folgendes:Aufrufen Servlet nach JavaScript-Funktion tötet Sitzung
<a href="/servlet/MyServlet" onclick="javascript:CreatePageView();"> Link 1 </a>
aber ich bemerkte, dass die JavaScript-Funktion CreatePageView() nicht die ganze Zeit ausgeführt werden sollen und war eine Rennsituation zu schaffen. Manchmal wurde das Javascript ausgeführt, andere Male wurde die Weiterleitung zuerst ausgeführt.
Also wollte ich die Reihenfolge der Ereignisse steuern und dachte, das Servlet innerhalb meiner Javascript-Funktion aufzurufen.
Wenn ich mein Servlet aufrufen, wird meine Sitzung zerstört und ich werde auf die Anmeldeseite umgeleitet. Kann jemand erklären, warum das passiert? Oder schlagen Sie vielleicht eine alternative Methode vor, das Servlet aufzurufen, ohne die Sitzung zu beenden? Danke im Voraus.
Hallo, vielen Dank für die Antwort und die Klärung der Dinge. Ich verstehe alles in Ihrem Codebeispiel mit Ausnahme der letzten drei Zeilen. Würde ich http: // beispiel.com durch meine Servlet-URL ersetzen? – Keefu
Nur die URL, die Sie in Ihrer Funktion asynchron aufgerufen haben. Sie haben nicht den gesamten Inhalt der 'CreatePageView()' Funktion angezeigt, also habe ich nur ein Beispiel gegeben. Oder feuern Sie überhaupt keine asynchrone Anfrage in Ihrer Funktion? – BalusC
Das Problem ist die JavaScript-Funktion, die ich anrufe, ist eine 3rd-Party-Bibliothek für Web-Analysen (Erfassung der Anzahl der Klicks auf einen Link), so bin ich unsicher, ob es eine asynchrone Anfrage auslöst oder nicht. Aufgrund der Rennsituation würde ich mir vorstellen, dass es eine asynch Anfrage ist. Kann ich diese Methode weiterhin verwenden, um die Funktion mit xhr.open() aufzurufen? – Keefu