2011-12-06 101 views
17

我確定答案將是'不',但我想問無論如何只是 incase我錯過了一些東西。使用POST方法與HTML錨標記

每個人都使用 GET方法知道一個合格的數據在一個錨定標記的頁面:

什麼我不知道是如果有一種方法可以做到同樣的事情,但使用 POST方法呢?

我這樣做的目的是爲了讓用戶看到的網址不會被 填入任何他們不需要看到的東西。

這與安全問題無關,因爲我已經知道 將是獲取傳遞數據的方式。

如果答案確實不是,那麼當有人希望保持URL乾淨時,人們用什麼方法傳遞數據 ?餅乾?還有別的嗎?

,以及如何當URL長度超過允許GET請求長度應對情景

我同時實現分選/用displaytag分頁,所有的請求參數被附加在排序/分頁網址面臨着這樣的問題這是GET請求的允許長度。

回答

31

你可以做這樣的事情:

<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> 
+0

試過這個,但它總是在做一個GET在鉻。任何想法爲什麼? –

+6
+0

不幸的是,'

'的存在會影響佈局。寧願完全隱藏的東西。 –

0

您可以創建一個臨時表單並在onclick事件<a>標籤上提交。

1

您可以使用javascript。在鏈接的onclick做形式。提交

我知道處理lenghty URL的唯一方法是改爲使用POST。

4

此行爲是特定的顯示標籤庫。它允許輕鬆加入書籤的搜索結果。如果你真的打算改變這個來使用POST,那麼你需要重寫顯示標籤庫或者引入一些jQuery來操作鏈接。

你的問題的遺留問題無濟於事。如果您需要GET(冪等請求,可加入書籤的URL,searchbot可檢索的URL等),請使用GET。如果您想要POST(非冪等請求,不可標記的URL,不可抓取的URL等),請使用POST。

通常,POST是強制性的,當請求可以修改服務器中的數據。想一想SQL INSERT,UPDATE,DELETE等。你當然不會讓這種請求GET。想象一下,你有一個表,所有「刪除行」的鏈接,做GET,然後searchbot來...