JavaScript - HTTP-Methode POST

POST-Methode

Bei Aktionen, die auf Datenbanken zugreifen kommt die POST-Methode zum Einsatz.

Beim Versenden von Daten mit der POST-Methode, werden die zu verschickenden Daten in eine Umgebungsvariable gepackt, die im HTTP-Rumpf versteckt ist.

URL-KodierungS.229 jetzt lerne ich AJAX

Unabhängig von der verwendeten Versandmethode wertet das empfangende Skript auf dem Server den Inhalt dieser Umgebungsvariablen aus. Der Pseudo-URL mit der Übergabe von Werten an ein Skript beinhaltet die Zeichen der Benutzereingabe nicht unverändert. Bei der Generierung des Pseudo-URL wird in der Regel der Prozess der URL-Kodierung durchlaufen, was beim versenden von Formulardaten automatisch erfolgt. Beim manuellen Versenden von Daten, wie es beim Aufruf der open()-Methode der Fall ist, muss die URL-Kodierung von Hand erledigt werden. Dazu verwendet man die escape()-Funktion. Diese URL-Kodierung erfolgt hauptsächlich, damit bei der Übertragung von Sonderzeichen über das Internet keine Probleme entstehn. Dabei werden Leerzeichen in dem String, duch Pluszeichen ersetzt. Zusätzlich werden sämliche reservierten Zeichen in hexadezimale Äquivalente konvertiert. Ein so konvertiertes Zeichen wird jeweils mit dem Prozentzeichen eingeleitet. Damach folgt der Hexadezimalcode.

Wenn die Daten an ein auswertendes Skript übermittelt werden, kommen alle Daten als ein Satz von Name-Wert-Paaren an. Der Name ist jeweils der, der in dem entsprechenden HTML-Tag festgelegt wurde. Die Werte sind das, was der Benutzer eingetragen hat. Dieser Satz von Namen-Wert-Paaren wird in einem Teilstring des URL übermittelt, den ein Webskript wieder auflösen muss.

Beispiel: name1=wert1&name2=wert2&name3=wert3

escape() S.527 Das umfassende Referenzwerk

Codiert einen String

Überblick

  • escape(s)

Argumente

  • s

    Der String, der mit Escape-Zeichen versehen oder codiert werden muss.

Rückgabewert

Eine codierte Kopie von s, in der bestimmte Zeichen durch hexadezimale Escape-Sequenzen ersetzt wurden.

Beschreibung

escape() ist eine globale Funktion. Sie gibt einen neuen String zurück, der eine codierte Version von s enthält. Dabei wird der String s selbst nicht verändert.

Zu Beachten ist, dass Text der mit escape() codiert wurde, auf dem Server wieder rückcodiert werden muss!

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

POST-Request benötigt einen "Content-Type-Header", um den MIME-Type des Request-Bodys festzulegen.

Texteingabe wird nach der Umwandlung rückwärts geschrieben

Beispiel:

<script type="text/javascript">

var xhr = xmlhttp();

function umwandeln() {

xhr.open("POST", "Post.php", true);

xhr.onreadystatechange = gibDatenAus;

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xhr.send("text=" + escape(document.getElementById("Eingabe").value));

}

function gibDatenAus() {

if (xhr.readyState == 4) {

document.getElementById("Absatz").innerHTML = xhr.responseText;

}

}

</script>

php-Script

<?php

if (isset($_POST['text']) && is_string($_POST['text'])) {

echo strrev($_POST['text']);

// echo gibt den Text aus, strrev dreht die Stringreihenfolge um

}

?>

Ausgabe:

zurück