Post an server, ohne reload
vulpi
- javascript
0 Der Martin
0 Vulpi0 Der Martin
0 Vulpi
0 Cybaer0 Der Martin
0 Cybaer
0 Cybaer
Hallo zusammen.
Ich habe da ein kleines Problem.
ich habe folgendes element das ich ohne reload der seiten an den "server" senden muss.
(sonst springt mein flash jedesmal an den anfang zurück)
Element:
<input type="hidden" name="id=submit action=ButtonPress(125)" value="">
(die anfrage ruft die funktion 125 in einer mediensteuerung auf, welche unser HD-Beamer startet)
wie sende ich den parameter name an den server, ohne reload der seite?
ich habe mal mit ajax rumgespielt. klapp jedoch nicht.
ajax script:
<script language="javascript">
var http = null;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
//function sndReq() {
if (http != null) {
http.open("POST", "http://192.168.0.1/main.html", true);
http.onreadystatechange = ausgeben;
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http.send("name= id=submit action=ButtonPress(999)"); // <-- Hier soll die Übergabe erfolgen
}
//} //function
</script>
hatt jemand eine idee wieso das nicht klappt ?
Hi,
ich habe folgendes element das ich ohne reload der seiten an den "server" senden muss. (sonst springt mein flash jedesmal an den anfang zurück)
muss es denn unbedingt mit der POST-Methode sein? Sende das einfach als GET-Formular ab und dreh das serverseitige Script so hin, dass es als Antwort nur den HTTP-Status "204 No Content" sendet. Dann bleibt der bisherige Fensterinhalt unangetastet.
Möglich, dass das auch mit POST funktioniert, aber da bin ich nicht ganz sicher.
<input type="hidden" name="id=submit action=ButtonPress(125)" value="">
Seltsamer Wert für das name-Attribut. Warum bringst du nicht einfach die 125 im name unter (natürlich mit einem Buchstaben vorangestellt, weil name nicht mit einer Ziffer beginnen darf)?
Ciao,
Martin
Hi Martin danke für deine rsche antwort.
leider muss das Attribut so aussehen.
<input type="hidden" name="id=submit action=ButtonPress(125)" value="">
Es wird durch den server ausgewertet (WXL/XPL) und die entsprechende sequence in der Mediensteuerung ausgeführt.
es könnte auch möglich sein das das ganze auch mittels GET funktioniert.
wie müsste ich das Script auf GET ändern. (bin Javascript/Ajax neuling)
besten dank
Vulpi
Hallo,
leider muss das Attribut so aussehen.
<input type="hidden" name="id=submit action=ButtonPress(125)" value="">
Es wird durch den server ausgewertet (WXL/XPL) und die entsprechende sequence in der Mediensteuerung ausgeführt.
ach so, die Server-Seite existiert also schon und ist fest vorgegeben? Dann vergiss meinen Vorschlag. :-(
Ich hatte angenommen, dass du auch die serverseitige Logik beliebig anpassen kannst.
es könnte auch möglich sein das das ganze auch mittels GET funktioniert.
wie müsste ich das Script auf GET ändern. (bin Javascript/Ajax neuling)
Einfach da wo du bisher POST stehen hast, durch GET ersetzen. Aber wenn du an der Gegenseite eh nix drehen kannst, hat es keinen Wert, daran etwas zu ändern.
Und mit den AJAX-Geschichten kann ich dir mangels eigener Kenntnisse leider auch nicht weiterhelfen.
Ciao,
Martin
Denoch besten dank
Hi,
Möglich, dass das auch mit POST funktioniert, aber da bin ich nicht ganz sicher.
Sofern der Browser es überhaupt unterstützt, funktioniert es auch mit POST.
Gruß, Cybaer
Hallo Cybaer,
Möglich, dass das auch mit POST funktioniert, aber da bin ich nicht ganz sicher.
Sofern der Browser es überhaupt unterstützt, funktioniert es auch mit POST.
_was_ unterstützt? Ich sprach vom 204er als Response - das macht doch der Server, was meinst du dann mit browserseitiger Unterstützung? Ich war mir bloß nicht sicher, ob ein 204er auch als Antwort auf POST zulässig ist.
So long,
Martin
Hi,
_was_ unterstützt? Ich sprach vom 204er als Response - das macht doch der Server, was meinst du dann mit browserseitiger Unterstützung?
Wenn der Client einen 204-Response nicht unterstützt (ja, das gibt es - muß er auch nicht), dann kann der Server 204er senden, wie er mag. Der von dir prognostizierte Effekt (Beibehaltung der aktuellen Seite) tritt nicht ein. Ein solcher Browser stellt die neue Seite (sofern Daten gesendet werden) einfach mit der entsprechenden URL in der Adresszeie dar. Werden keine Daten gesendet, dann hast Du halt nur den neuen URL - und eine leere Seite.
Ich war mir bloß nicht sicher, ob ein 204er auch als Antwort auf POST zulässig ist.
Deswegen die Aussage, daß *wenn* der Client 204er unterstützt, er dies auch bei POST tut (jedenfalls spricht nichts dagegen - ich kenne auch keinen Client, wo das nicht der Fall wäre, noch hätte eine eine andere Verhaltensweise ein auch nur irgendwie begründbaren Sinn). Alles andere wäre schlicht ein Bug ...
Gruß, Cybaer
Hi,
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
Wenn die Daten x-www-form-urlencoded sein sollen ...
http.send("name= id=submit action=ButtonPress(999)"); // <-- Hier soll die Übergabe erfolgen
... dann solltest Du die Daten besser auch x-www-form-urlencoded schicken, oder?
hatt jemand eine idee wieso das nicht klappt ?
Der Einfachheit halber würde ich vorschlagen, die Daten also normales GET-Formular zu senden, und einfach mal zu schauen, wie sie x-www-form-urlencoded denn wirklich aussehen. =;-)
Gruß, Cybaer