如何使用带HTML锚标签的POST方法?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (32)

我确信答案是'不',但是我想问问,只是因为我错过了一些东西。

大家都知道,通过使用GET方法将数据传递给锚标签中的页面:

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

我这样做的目的是通过不将任何内容放在他们不需要看到的地方来保持用户看到的URL。

这与安全问题无关,因为我已经知道会有办法获得传递的数据。

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

以及在URL长度超过允许的GET请求长度时如何处理这些情况

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

提问于
用户回答回答于

你可以这样做:

<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>
用户回答回答于

这种行为是特定于显示标签库的。它允许轻松加入书签的搜索结果。如果你真的打算改变这个来使用POST,那么你需要重写显示标签库或引入一些jQuery来操作链接。

你的问题的遗留问题无济于事。如果需要GET(幂等请求,可收藏的URL,searchbot可抓取的URL等),请使用GET。如果想要POST(非幂等请求,不可标记的URL,不可抓取的URL等),请使用POST。

通常,当请求可以修改服务器中的数据时,POST是强制性的。想想一个SQL的INSERTUPDATEDELETE等你肯定的GET请求不会做出这样的。想象一下,你有一张表,里面有所有“删除行”的链接,它们都是GET,然后一个searchbot出现......

扫码关注云+社区

领取腾讯云代金券