Frage

In HTML, können Sie Daten von einer Seite zur anderen mit einer GET-Anforderung in ein paar Möglichkeiten an:

http://www.example.com/somepage.php?data=1

... oder ...

<form action="somepage.php" method="get">
  <input type="hidden" name="data" value="1" />
  <input type="submit" value="Submit">
</form>

Mit einer POST-Anfrage allerdings habe ich nur Daten über Formularelemente wie diese gesendet gesehen zu werden:

<form action="somepage.php" method="post">
  <input type="hidden" name="data" value="1" />
  <input type="submit" value="Submit">
</form>

Wenn ich nur einen Parameter habe ich auf eine andere Seite senden möchten, mit POST, ist es ein einfacher Weg, als es in einer Form, Verpackung?

War es hilfreich?

Lösung

Es gibt nur zwei Möglichkeiten, von einem Browser POST - einer Form oder ein Ajax Anfrage.

Andere Tipps

Mit nur HTML, ist eine Form der einzige Weg, eine POST-Anforderung zu generieren. Sie können Server-Side-Scripting / Javascript verwenden, um POST-Anfragen auf andere Weise zu erzeugen, aber keine andere Wege nur mit einfachem HTML zu tun.

Wie Sie vielleicht schon entdeckt haben, gibt es genau zwei Möglichkeiten, Daten über das HTTP-Protokoll zu übertragen: GET oder POST. Es gibt auch eine dritte Art von HTTP-Nachricht HEAD genannt, aber das ist wirklich nur verwendet, um die Meta-Daten um eine Ressource zu bekommen, ohne sie herunterzuladen und ist nicht weit umgesetzt werden.

Offensichtlich beide GET und POST sind leicht zugänglich durch die Verwendung eines <form>-Tag. Die GET ist auch leicht zugänglich, indem manuell Abfrageparameter an die URL in der Form von Name-Wert-Paaren (foo.html?a=1&b=2) Zugabe.

Die Schönheit und Komplexität der POST, ist jedoch, dass die Name-Wert-Paare aus dem Browser auf den Web-Server innerhalb der HTTP-Request-Header eingeschlossen übermittelt werden, das nicht so leicht zugänglich ist. Der einzige Weg, um die POST ohne Verwendung eines <form> Tag zu tun ist manuell den HTTP-Request-Header zu ändern und die Name-Wert-Paare in selbst hinzufügen.

Denken Sie auch daran, dass ein HTTP-Server nicht weiß, an sich, ob eine Anforderung (GET oder POST) von einem Hauptbrowserfenster geliefert wurde, oder ein AJAX-Aufruf. Unabhängig davon, wird der Web-Server die Anfrage lesen, werden entziffern, wenn es ein GET oder POST Anfrage ist, suchen Sie nach Name-Wert-Paare als angemessen, und eine Antwort zu erzeugen.

Wenn Sie weiteres Detail mögen auf, wie man richtig eine POST Anfrage zu formatieren Sie jmarshall .com / easy / http / oder vielleicht tcpipguide.com/free/t_HTTPRequestMessageFormat.htm . Die endgültige Ressource ist immer die W3C , aber manchmal können die RFCs sein schrecklich verwirrend für uns Sterblichen zu lesen.

In HTML ist es nur mit einem Formular.

Aber Sie können es tun, wenn Sie mit Ihrem Server-Seite spielen. Hier ist ein guter Artikel, die Ihnen zeigen, wie Sie die Get es zu ändern zu veröffentlichen über PHP. Dies erfordert, dass Sie mit fsockopen ... Auf diese Weise spielen zu tun, wird es Ihre Parameter? Id = 1 & param = 2 ... verwenden und eine POST-Anforderung auf der Serverseite erstellen. Sie können es generic machen, sobald es wird es funktioniert Setups, aber es ist ein wenig Arbeit zu Setup alles zuerst.

Sie können natürlich tun immer ein GET auf einer Seite, die serverseitige enthält (oder AJAX) Logik, die eine POST-Anforderung erstellen wird (zum Beispiel GET /pageWhichCreatesAPost.py). Sehr chaotisch natürlich, aber es kann Fälle geben, in denen eine solche Behelfslösung vielleicht nützlich sein könnte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top