web-dev-qa-db-ja.com

HTMLアンカータグでPOSTメソッドを使用

答えは「いいえ」になると確信していますが、何かを見逃した場合に備えて、とにかく尋ねたいと思いました。

誰でも、GETメソッドを使用してアンカータグ内のページにデータを渡すことを知っています。

私が疑問に思っているのは、同じことを行う方法があったが、代わりにPOSTメソッドを使用している場合ですか?

そのための私の目的は、ユーザーに表示する必要のないものを何も入れないことで、ユーザーに表示されるURLをきれいに保つことです。

渡されるデータを取得する方法があることは既に知っているので、これはセキュリティの問題とは関係ありません。

答えが本当に「いいえ」の場合、URLをクリーンに保ちたいという要望があるときに、データを渡すためにどのような方法を使用しますか?クッキー?他に何か?

uRLの長さがGETリクエストの許容長を超える場合のシナリオへの対処方法

Displaytagを使用したソート/ページネーションを実装しているときにこの問題に直面しています。すべてのリクエストパラメータは、GETリクエストの許容長を超えるソート/ページネーションURLに追加されます。

23
dpsdce

次のようなことができます:

<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

この動作は、表示タグライブラリに固有です。ブックマーク可能な検索結果を簡単に作成できます。本当にこれを変更してPOSTを使用する場合は、表示タグライブラリを書き直すか、リンクを操作するために jQuery を組み込む必要があります。

あなたの質問の残りはどこにも沸騰しません。 GET(べき等のリクエスト、ブックマーク可能なURL、searchbotクロール可能なURLなど)が必要な場合は、GETを使用します。 POST(非べき等性のリクエスト、ブックマーク不可能なURL、クロール不可能なURLなど)が必要な場合は、POSTを使用します。

通常、リクエストがサーバー内のデータをmodifyできる場合、POSTは必須です。SQLINSERTUPDATEDELETEなど。この種のリクエストをGETすることは確かにありません。GETとその後、検索ボットが登場します...

5
BalusC

JavaScriptを使用できます。リンクのonclickでform.submitを実行

長さのあるURLを処理する唯一の方法は、代わりにPOSTを使用することです。

3
PrasadB

一時的なフォームを作成して、<a> 鬼ごっこ。