将POST方法与HTML锚标签一起使用

dps*_*dce 24 html anchor post jsp-tags displaytag

我确信答案会是'不',但我还是想问,不管怎么说,我错过了什么.

每个人都知道使用GET方法将数据传递给锚标记中的页面:

我想知道的是,如果有办法做同样的事情,但使用POST方法代替?

我这样做的目的是通过不在其中放置任何他们不需要看到的内容来保持用户看到的URL清洁.

这与安全性问题无关,因为我已经知道有很多方法可以获取传递的数据.

如果答案确实没有,那么当希望保持URL清洁时,人们使用什么方法来传递数据?饼干?别的什么?

以及当URL长度超过允许的GET请求长度时如何处理场景

我在使用displaytag实现排序/分页时遇到了这个问题,所有请求参数都附加在sort/pagination url中,这超出了GET请求的允许长度.

los*_*gio 36

你可以这样做:

<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>
Run Code Online (Sandbox Code Playgroud)

  • `<a onclick="document.getElementById('myform').submit(); return false;">点击这里</a> (6认同)
  • @JesseGlick 几乎晚了一年,但是如何为给定的 `form` 元素使用 `inline` 样式? (2认同)

Pra*_*adB 5

您可以使用 JavaScript。在点击链接时执行 form.submit

我所知道的处理长 URL 的唯一方法是改用 POST。


Bal*_*usC 5

此行为特定于显示标记库.它允许轻松收藏的搜索结果.如果你真的打算改变它来使用POST,那么你需要重写显示标记库或引入一些jQuery来操作链接.

你的问题遗留无处可去.如果您想要GET(幂等请求,可收藏的URL,搜索可搜索网址等),请使用GET.如果您想要POST(非幂等请求,不可收藏的URL,不可抓取的URL等),请使用POST.

通常,当请求可以修改服务器中的数据时,POST是必需的.想想一个SQL的INSERT,UPDATE,DELETE等你肯定的GET请求不会做出这样的.想象一下,你有一个包含所有"删除行"链接的表,这些链接执行GET然后搜索机器人出现...