Probleme mit einem AJAX-Call in einem dynamischen Webprojekt

pkm

Bekanntes Mitglied
Ich habe ein dynamisches Webprojekt (mit jsp-Seiten), bei dem ich verschiedene AJAX-Calls mit jQuery erfolgreich mache, da gab es nie Probleme.

Nun habe ich eine neue jsp-Seite, nachdem ich vergeblich mit einen AJAX-Call mit jQuery machen wollte, bin ich um gestiegen auf Vanilla-JavaScript, ud es klappt nach wie vor nicht, und ich verstehe nicht, woran das liegen kann.

Hier meine Funktion mit dem Call:

Javascript:
function forumContent() {
      
 
     var xmlhttp = new XMLHttpRequest();

        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == XMLHttpRequest.DONE) {   // XMLHttpRequest.DONE == 4
               if (xmlhttp.status == 200) {
                   alert("huhu");
               }
               else if (xmlhttp.status == 400) {
                  alert('There was an error 400');
               }
               else {
                   alert('Something else other than 200 was returned');
               }
            }
        };

        xmlhttp.open("POST", "Forum", true);
        xmlhttp.send();
        
    
}

… hier das Servlet:

Java:
package com.tutorial.jsp;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Forum
 */
@WebServlet("/Forum")
public class Forum extends HttpServlet {
    private static final long serialVersionUID = 1L;
      
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Forum() {
        super();
    }


    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        
        response.getWriter().append("success");
    }

}

Ich verstehe wirklich nicht, was da syntaktisch falsch sein kann. Es kommt immer die Antwort: "Something else other than 200 was returned".
 

pkm

Bekanntes Mitglied
So funktioniert es auch nicht:

Java:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>

<link rel="stylesheet"
    href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="style_forum.css">
</head>
<body>
    <script src="js/jquery.min.js"></script>
    <script
        src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js">
    </script>
    
    
<script type="text/javascript">
$(document).ready(function() {
  
    var decodedCookie = decodeURIComponent(document.cookie);

    /*
     if(decodedCookie == '') {
         window.location.replace("http://localhost:8080/KSC/index.jsp");
     }
    */

    $('#saeule').html(forumContent());

});

//TODO: Vom Forum, wenn der Nutzer schon angemeldet ist, soll dieser ruhig in den Chat wechseln können un. umgekehrt.

function forumContent() {

        var dataToBeSent  = {
                    uNick :'nick',                       
                    uPassword :'pwd'
                    };
    
     $.ajax({
           url : 'Forum',
           data : dataToBeSent,
           type : 'POST',
           dataType : 'text',
           success : function(response) {
              
             if(response == "success") {
                      alert("test");
        
             }                               
           }
       });
    
    return "<h3>SPIELE</h3><h3>SPIELER</h3>";
}

</script>

  <div class="container">
     <div class="box-orange"><img src="pics/ksc.png"></div>
     <div class="box-blue"><button onclick="byeFunction()" type="submit" class="btn btn-primary">Abmelden</button></div>
     <div class="box">
        Unser Forum
     </div>
  </div>
 
 
<div class="container-fluid">
    <div class="row">
      <div class="col-sm-10 col-md-10 bg-success">
      <div id="saeule">
      </div>
      </div>
      <div id="saeule" class="col-sm-2 col-md-2 bg-warning">
        <p>Auf der rechten Seite können Forumstatistiken sowie neuste Themen und Beiträge genannt werden.</p>
      </div>
    </div>
  </div>


<script> 
    function byeFunction() {
 
      var delCookie = document.cookie += "; max-age=0;";

      document.cookie = delCookie;

      var cookieList = (document.cookie) ? document.cookie.split(';') : [];
      
      var cookieValues = {};
      for (var i = 0, n = cookieList.length; i != n; ++i) {
        var cookie = cookieList[i];
        var f = cookie.indexOf('=');
        if (f >= 0) {
          var cookieName = cookie.substring(0, f);
          var cookieValue = cookie.substring(f + 1);

          if(cookieName == "uname") {
              cookieValue = "";
          }
        }
      }
      
      window.location.replace("http://localhost:8080/KSC/index.jsp");
          
    }
 
</script>
 
</body>
</html>
 

Ctwx90

Neues Mitglied
Ich habe es jetzt auf die Schnelle mal angeschaut und kann syntaktisch keinen Fehler sehen. Hast du eventuell ein komplettes Projekt? Eventuell ist es etwas was rinsherum fehlt?

Anstatt XMLHttpRequest würde ich dir fetch empfehlen (https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch) das ist einfacher zu verwenden.
Ich habe mal ein Testprojekt aufgesetzt wo beides wunderbar funktioniert: https://github.com/cwansart/js-fetch-with-servlet-backend-test

Muss jetzt nochmal los, aber wenn du irgendwie ein Projektordner oder so bereitstellen könntest, das man lokal mal prüfen könnte, würde ich da später mal schauen.
 

mrBrown

Super-Moderator
Mitarbeiter
Und um mögichst alle Fehlerquellen auszuschließen: was passiert, wenn du das ganze mit Postman oder curl o.ä. versuchst?
 

pkm

Bekanntes Mitglied
Der zurückgegebene Status ist 404. Ich konnte nicht herausfinden, weshalb, daher habe ich mich entschlossen, das Problem zu umschiffen, indem ich vermittels ActiveX über JavaScript ins Dateisystem schreibe - ist dies überhaupt möglich? Mir ist so etwas wie folgt vorgeschwebt:

Javascript:
    var fname = "C:\\PFAD\\dateiname.txt";
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var file = fso.CreateTextFile(fname, true, true);
    file.WriteLine("sometext");
    file.Close();

Der schreibt aber nicht in die Datei. Woran könnte das liegen?
 

pkm

Bekanntes Mitglied
Öm ok. Also ich möchte an dieser Stelle für Eure Hilfe danken. Hab aber auch ne Frage: Kann ich denn von JavaScript aus in eine Datei schreiben? Und falls ja, was ist Eurer Erfahrung nach die beste Technik, dies zu tun?
 

mrBrown

Super-Moderator
Mitarbeiter
Was genau willst du denn am Ende erreichen?

Servlets kann man auf jeden Fall nicht mit Client-Seitigem JS ersetzten.
 

fhoffmann

Top Contributor
Naja, ich möchte in eine Datei schreiben. Geht das mit JavaScript?
Wo möchtest du in eine Datei schreiben? Auf dem Server oder auf dem Client?
Wenn beim ausprobieren Client und Server auf dem gleichen Rechner laufen, ist das manchmal schwer zu unterscheiden. Du must dir aber immer vorstellen, dass deine Webseite auf einem Server in New York liegt und ein Benutzer diese Webseite in seinem Browser in Buxtehude aufruft. Willst du die Datei nun in New York oder in Buxtehude speichern?
 

pkm

Bekanntes Mitglied
In New York. Aber das geht meines Wissens mit JavaScript alleine nicht. Daher bin ich da am Grübeln, was für Möglichkeiten ich da hab.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JSF Probleme bei Navigation mit Verzeichnisswechsel Web Tier 2
W JSF Probleme mit Data Table Web Tier 8
W JSF Probleme mit Zugriff zur Managed Bean Web Tier 11
G Probleme mit Java + Tomcat | Cannot switch on a value of type String for source level below 1.7 Web Tier 8
F JSF Probleme mit OverlayPanel Web Tier 0
H Frameset durch Tabelle ersetzten - Probleme mit jsp:include Web Tier 3
xehpuk JSF URL-Encoding-Probleme bei <h:link> (Mojarra) Web Tier 4
M ejb @Remote macht probleme Web Tier 10
S JSF SelectOneMenu - Probleme mit AJAX Web Tier 6
W Probleme mit Expression language ? Web Tier 13
P JSF Datenbank Probleme (Limit, Wiederholung) Web Tier 8
J JSF JavaScript Probleme zwischen Tomahawk und Tiles!? Web Tier 2
B Probleme mit h:selectOneRadio Web Tier 2
T DWR - Probleme mit Konfiguration Web Tier 13
W JSF MyFaces Tomahawk Probleme Web Tier 4
G Probleme mit EclipseLink und Java.util.Date Web Tier 3
S JSF Probleme beim redirect im ExceptionHandler Web Tier 2
P JSF 1.2 Navigation probleme Web Tier 2
D Probleme beim installieren von WebBeans Web Tier 2
D Probleme mit Tomcat Web Tier 3
M Tomcat 6 Umlaut Probleme Web Tier 2
D Seam Example Probleme Web Tier 2
C Probleme mit JSPs in Unterverzeichnissen Web Tier 4
A [PrimeFaces] dataTable mit paginator Probleme Web Tier 2
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
0 JSF: css einbinden - Probleme Web Tier 2
M iframe probleme Web Tier 2
K [GWT] Probleme beim asynchronen Methodenaufruf mit GWT-RPC Web Tier 8
B Probleme mit RichFaces Web Tier 2
O struts2 - Probleme mit parametrisierten URLs Web Tier 5
E Probleme mit GWT & MySQL Web Tier 3
G Probleme mit Ajax Login (jsp) Web Tier 5
S Tomcat / Eclipse Probleme Web Tier 2
B Probleme mit <jsp:include page=""/> und Laufzeit Web Tier 7
P Zurück-Button des Browsers macht Probleme Web Tier 9
O Struts2: Probleme mit Links aus Packages raus Web Tier 9
A JSF+Glassfish: Probleme mit Managed Bean Web Tier 2
S Probleme mit den Nav_rules und HTML code Web Tier 2
D Probleme mit ServletRequest Web Tier 14
G Probleme mit Tomcat Web Tier 14
E RichFaces 3.2.1 Probleme Web Tier 4
W JSTL macht Probleme Web Tier 6
W JavaBeans class="" macht Probleme Web Tier 2
A Time-Out Probleme Web Tier 21
B Probleme mit Marquee Tag Web Tier 3
A Dojo: Tab deaktivieren wenn in einem Listenfeld ein bestimmter Wert steht Web Tier 3
J Suche nach einem Webframework Web Tier 5
S Primefaces commandButton in einem Dialog/Form/PanelGrid führt actionListener nicht aus Web Tier 4
S CDI: Bean aus einem anderen jar Web Tier 3
M JSF Zugriff auf mehrere Formulareinträge in einem Validator Web Tier 9
J Faces response aus einem anderen Servlet heraus rendern Web Tier 4
E Servlet mit einem Link aufrufen? Web Tier 13
P Ist es möglich einen Returnwert einem httpRequest zu übergeben Web Tier 3
H Nochmals Tag in einem Tag Web Tier 3
H Tag in einem anderen Tag Web Tier 2
S Verlinkung von JSF-Seiten in einem gecshützten Bereich Web Tier 2
T In einem Struts Tag Werte mit Java einfügen Web Tier 2
G WebSeite hinter einem Login auslesen Web Tier 8
U Grafik aus einem Datenmodell generieren Web Tier 2
G Javascriptfunction aus einem Sucess-path aufrufen Web Tier 2
S AJAX/RestController Post Problem Web Tier 18
J JSF/JEE6 asynchronie Statusmeldungen per ajax Web Tier 1
J Funktion für AJAX - Problem mit Return Web Tier 14
D Servlet 1 Servlet für alles - Wie Cookies per Ajax? Web Tier 1
J Wicket: Füllen von Textarea via AJAX irgendwo auf der PAGE Web Tier 1
S JSF mit Ajax? Web Tier 3
V Wie baue ich eine Ajax Webanwendung? Suche Beispielanwendung (UML) eines AJAX Service Web Tier 0
P JSF Ajax aktualisiert Seite neu Web Tier 2
L JSF Composit Component mit ajax funktioniert nicht. Web Tier 4
M Ajax Fehler zur Laufzeit Web Tier 5
T JSF Primefaces: DataTable Ajax Update - Weiterleitung von anderer Seite Web Tier 11
S JSF ComboBox mit JSF 2.0/ajax Web Tier 4
Kenan89 Class Funktion mit Ajax rufen Web Tier 13
P JSF tag "ajax" not found Web Tier 3
M JSF DataTable refreshen mit Ajax? Web Tier 5
R JSF Mit Ajax ganze Seite neu laden Web Tier 2
J Ajax ist undefiniert Web Tier 3
P JSF AJAX render wird nicht ausgeführt Web Tier 4
M JSF Ajax Command Link Web Tier 2
X Seite wird mit AJAX neu geladen Web Tier 4
J JSF AJAX-Aufruf ohne Komponente Web Tier 4
S Richfaces 4.0 Ajax Waitingpanel Web Tier 2
G JSF 2x h:selectManyCheckbox ohne duplikate Auswahl/selectManyCheckbox und f:ajax Web Tier 3
P JSF Login per Ajax validieren. Was ist der Beste Weg? Web Tier 4
S Ajax Request verhindert forward? Web Tier 8
P JSF Ajax refresh nach Linkklick Web Tier 4
B Ajax JSON Objekt verschicken Web Tier 3
N Htmlunit Test mit Ajax Web Tier 2
D JSF Ajax mit Facelets (PrimeFaces) Web Tier 4
G mit Ajax ein Image vom Server holen Web Tier 2
J JSP und Ajax Web Tier 6
7 Struts+AJAX- Session-Handling? Web Tier 2
H Richfaces - Taglib Problem gelb unterstrichen Ajax Output Web Tier 6
S Framework, AJAX Drag and Drop Hilfe? Web Tier 2
H Welches Ajax Framework Web Tier 8
7 Struts und Ajax. Problem mit Actions Web Tier 2
F AJAX: Inhalt nachladen + load icon Web Tier 2
I AJAX - Problem Web Tier 18
I AJAX update Web Tier 2
T <f:ajax> in JSF2.0 Komponente ein- und ausblenden Web Tier 4

Ähnliche Java Themen

Neue Themen


Oben