wake-up-neo.com

Verwendung der POST Methode mit HTML-Ankertags

Ich bin mir sicher, dass die Antwort 'NEIN' sein wird, aber ich wollte sowieso nur fragen, wenn ich etwas verpasst habe.

Jeder weiß, dass man Daten an eine Seite in einem Ankertag mit der GET-Methode .__ übergibt.

Was ich mich wundere ist, wenn es einen Weg gab, das Gleiche zu tun, aber stattdessen Die POST - Methode verwenden?

Mein Ziel dabei ist es, die URLs, die der Benutzer sieht, sauber zu halten, indem Sie nichts in sie einfügen, was sie nicht sehen müssen.

Dies hat nichts mit Sicherheitsbedenken zu tun, da ich bereits dort weiß, dass es Möglichkeiten gibt, die übergebenen Daten zu erhalten.

Wenn die Antwort in der Tat nein lautet, welche Methoden verwenden die Leute, um Daten weiterzugeben. __, wenn der Wunsch besteht, die URLs sauber zu halten? Kekse? Etwas anderes?

und wie mit den Szenarien umzugehen ist, wenn die URL-Länge die zulässige Länge der GET-Anforderung überschreitet

Ich stehe vor diesem Problem während der Sortierung/Paginierung mit displaytag. Alle Anforderungsparameter werden an die Sortier-/Paginierungs-URL angehängt, die mehr als die zulässige Länge der GET-Anforderung ist.

21
dpsdce

Sie könnten so etwas tun:

<form id="myform" method="post" action="target.html">
  <input type="hidden" name="name" value="value" /> 
  <a onclick="document.getElementById('myform').submit();">click here</a>
</form>
35
loscuropresagio

Dieses Verhalten ist spezifisch für die Anzeige der Tag-Bibliothek. Es ermöglicht leicht bookmarkbare Suchergebnisse. Wenn Sie wirklich beabsichtigen, dies zu ändern, um POST zu verwenden, müssen Sie die Anzeige-Tag-Bibliothek neu schreiben oder ein paar jQuery hinzufügen, um die Links zu bearbeiten.

Der Rest Ihrer Fragen kocht nirgends. Wenn Sie GET (idempotente Anforderungen, mit Lesezeichen versehene URLs, durchsuchbare URLs mit Suchfunktion usw.) möchten, verwenden Sie GET. Wenn Sie POST (nicht idempotente Anforderungen, nicht mit Lesezeichen versehene URLs, nicht durchforstbare URLs usw.) möchten, verwenden Sie POST. 

Normalerweise ist POST obligatorisch, wenn die Anforderung Ändern die Daten auf dem Server _ Stellen Sie sich eine SQL INSERT, UPDATE, DELETE usw. vor. Sie werden diese Art von Anfragen sicherlich nicht machen. Stellen Sie sich vor, Sie haben eine Tabelle mit allen "Zeilen löschen" -Links, die GET ausführen, und dann kommt ein Suchbot ...

5
BalusC

Sie können Javascript verwenden. Bei einem Klick auf den Link erfolgt die Eingabe von form.submit

Die einzige Möglichkeit, mit der Längen-URL umzugehen, ist die Verwendung von POST.

3
PrasadB

Sie können ein temporäres Formular erstellen und es während des Onclick-Ereignisses des <a>-Tags senden.