Ich habe einen einfachen HTTP-Server in Java geschrieben. Was ich versuche zu erreichen ist, dass ich einen Javascript/Ajax Client habe, der Nachrichten vom Server bekommen kann. Der Java-Server, den ich habe, ist in der Lage, die hergestellte Verbindung zu erkennen, aber der Client kann die vom Server ausgedruckte Nachricht nicht abrufen.Java Http-Server Get Post to Ajax
Es gibt eine Schaltfläche in meinem Client, nach dem Klicken der Server-Nachricht wurde nicht gedacht, aber in der Lage, eine Verbindung zum Server zu senden. Der Kunde sollte "Test Server" Zeigen Sie die Taste
Kunden beim Klicken
<html>
<body>
<h2>AJAX</h2>
<button type="button" onclick="loadDoc()">Request data</button>
<p id="demo"></p>
<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("demo").innerHTML = xhttp.responseText;
}
};
xhttp.open("GET", "http://127.0.0.1", true);
xhttp.send();
}
</script>
</body>
</html>
Server
public class JavaHttpServer {
protected void start() {
ServerSocket s;
System.out.println("Webserver starting up on port 80");
try {
s = new ServerSocket(80);
} catch (Exception e) {
System.out.println("Error: " + e);
return;
}
System.out.println("Waiting for connection");
for (;;) {
try {
Socket remote = s.accept();
System.out.println("Connection, sending data.");
BufferedReader in = new BufferedReader(new InputStreamReader(
remote.getInputStream()));
PrintWriter out = new PrintWriter(remote.getOutputStream());
String str = ".";
while (!str.equals(""))
str = in.readLine();
out.println("HTTP/1.0 200 OK");
out.println("Content-Type: text/html");
out.println("Server: Bot");
out.println("");
out.println("<H1>Test Server</H2>");
out.flush();
remote.close();
} catch (Exception e) {
System.out.println("Error: " + e);
}
}
}
public static void main(String args[]) {
JavaHttpServer ws = new JavaHttpServer();
ws.start();
}
Guter Punkt. Fehler wie diese sollten auch eine Fehlermeldung in der Konsole der Dev Tools des Browsers ausgeben. – zapl
Wo sollte ich out.println hinzufügen ("Access-Control-Allow-Origin: *"); Ich benutze kein Java-Servlet, ich habe keine Antwort-Header zu – newbieprogrammer
hinzuzufügen Sie sollten es in den Server-Code direkt nach der Zeile hinzufügen: out.println ("Content-Type: text/html"); – cris23