使href(锚标记)请求POST而不是GET?

emi*_*lly 29 html anchor post get

<a href="employee.action" id="employeeLink">Employee1</a>
Run Code Online (Sandbox Code Playgroud)

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

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

mpl*_*jan 27

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

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

如果您坚持使用我强烈反对的框架,请提供表格并通过链接提交

<form action="employee.action" method="post" target="myFrame" id="myForm"></form>
Run Code Online (Sandbox Code Playgroud)

并使用(在简单的JS中)

 window.onload=function() {
   document.getElementById("employeeLink").onclick=function() {
     document.getElementById("myForm").submit();
     return false; // cancel the actual link
   }
 }
Run Code Online (Sandbox Code Playgroud)

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

 window.onload=function() {
   document.getElementById("employeeLink").onclick=function() {
     var myForm = document.createElement("form");
     myForm.action=this.href;// the href of the link
     myForm.target="myFrame";
     myForm.method="POST";
     myForm.submit();
     return false; // cancel the actual link
   }
 }
Run Code Online (Sandbox Code Playgroud)


rka*_*ano 12

要做POST,你需要有一个表格.

<form action="employee.action" method="post">
    <input type="submit" value="Employee1" />
</form>
Run Code Online (Sandbox Code Playgroud)

有一些方法可以发布带有超链接的数据,但是你需要一些javascript和一个表单.

一些技巧:使链接使用POST而不是GET,如何使用链接发布数据

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

<form action="employee.action" method="post" target="myFrame">
Run Code Online (Sandbox Code Playgroud)