Moin Moin!
Mit dem Neustart wird aber auch der webserver für 30 sekunden inaktiv, die daten.xml kommt also nie zurück.
Das gibt dann nach ca 20s eine Fehlermeldung, auf die ich gern verzichten würde.
Wie kann ich den http request sozusagen anullieren, damit der Browser nicht auf die daten.xml wartet?
Im Browser vermutlich gar nicht oder nur mit viel Trickserei. HTTP definiert, das der Webserver zu antworten hat, entsprechend ist der Browser gebaut. Du müßtest selbst eine TCP-Connection aufbauen, an großen Teilen der Browser-Logik vorbei, dort den GET-Request reinschreiben, und - ganz wichtig - anders als der Browser eben NICHT auf eine Antwort warten. Vermutlich reicht so etwas wie
// Pseudo-Code!
var socket=openSocket("web.server.lan",80);
socket.write("GET /daten.xml?action=reset HTTP/1.1\r\nHost: web.server.lan\r\n\r\n");
// oder HTTP/1.0:
socket.write("GET /daten.xml?action=reset HTTP/1.0\r\n\r\n");
socket.close();
Wenn Du Zugriff auf den Source-Code des Embedded-Systems hast, sorge einfach dafür, das unmittelbar vor Auslösen des Resets minimal noch ein "200 OK" mit minimalem Content oder notfalls "204 No Content" gesendet wird.
Vielleicht könnte ein wenig AJAX funktionieren: Mit Javascript und XMLHttpRequest hast Du die Möglichkeit, SELBST mit eigenem Code auf Fehler aller Art zu reagieren. Die Fehlermeldung wegen der ausbleibenden Antwort kannst Du dann ganz entspannt ignorieren.
Ohne Javascript und ohne Zugriff auf den Source-Code des Embedded-Systems bleibt wohl nur, das etwas garstige Verhalten des Systems zu dokumentieren und damit zu leben.
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".