【问题标题】:Making href (anchor tag) request POST instead of GET? [duplicate]制作href(锚标签)请求POST而不是GET? [复制]
【发布时间】:2022-02-06 20:28:03
【问题描述】:
<a href="employee.action" id="employeeLink">Employee1</a>

当我单击 Employee1 链接时,GET 请求会发送到服务器。我想让它 POST 而不是 GET 请求。 有没有办法可以更改 href 的默认 GET 行为?

注意:- 我知道我们可以在点击超链接时调用 javascript 函数,然后创建表单并提交它。但我正在寻找我们可以提及的地方 锚标记中的某些属性可以发出 POST 请求而不是 GET 请求?

【问题讨论】:

  • 没有。您需要 javascript 或让 get 在服务器上执行帖子

标签: html post get anchor


【解决方案1】:

使用 jQuery 非常简单,假设您希望发布到的 URL 在同一台服务器上或已实现 CORS

$(function() {
  $("#employeeLink").on("click",function(e) {
    e.preventDefault(); // cancel the link itself
    $.post(this.href,function(data) {
      $("#someContainer").html(data);
    });
  });
});

如果你坚持使用我强烈反对的框架,请准备一个表格并附上链接提交

<form action="employee.action" method="post" target="myFrame" id="myForm"></form>

并使用(在纯 JS 中)

 window.addEventListener("load",function() {
   document.getElementById("employeeLink").addEventListener("click",function(e) {
     e.preventDefault(); // cancel the link
     document.getElementById("myForm").submit(); // but make sure nothing has name or ID="submit"
   });
 });

如果没有表格,我们需要制作一个

 window.addEventListener("load",function() {
   document.getElementById("employeeLink").addEventListener("click",function(e) {
     e.preventDefault(); // cancel the actual link
     var myForm = document.createElement("form");
     myForm.action=this.href;// the href of the link
     myForm.target="myFrame";
     myForm.method="POST";
     myForm.submit();
   });
 });

【讨论】:

  • 我想在框架下追加响应后数据数据(基本上清除旧框架html并追加新的)这是我的框架元素 。它尝试了 $("#myFrame").html(data);但它没有附加任何数据
  • 框架?你在哪里提到框架?将框架更改为 div - 我称之为 someContainer
  • 你能看到这个链接吗stackoverflow.com/questions/48189365/…
【解决方案2】:

要进行POST,您需要有一个表单

<form action="employee.action" method="post">
    <input type="submit" value="Employee1" />
</form>

有一些方法可以通过超链接发布数据,但您需要一些 javascript 和一个表单。

一些技巧:Make a link use POST instead of GETHow do you post data with a link

编辑:要在框架上加载响应,您可以将表单定位到框架:

<form action="employee.action" method="post" target="myFrame">

【讨论】:

  • 您不需要使用 javascript 发布表单
  • @mplungjan。根据您提供的链接,我们可以使用 $.post("WhateverPage.php", { name: "John", time: "2pm" } ); .但是来自 post 请求的 HTML 响应呢?我将如何显示来自发布请求的 html 响应。所以看起来我需要创建表单并提交
猜你喜欢
  • 2016-10-24
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 2020-11-12
  • 1970-01-01
相关资源
最近更新 更多