我不确定这是否可行。但我想知道是否有人知道如何使一个超链接传递一些变量和使用POST(像一个表单)而不是GET。


当前回答

检查这个,它会帮助你

$().redirect('test.php', {'a': 'value1', 'b': 'value2'});

其他回答

检查这个,它会帮助你

$().redirect('test.php', {'a': 'value1', 'b': 'value2'});

您可以创建一个带有隐藏输入的表单,其中包含要发布的值,将表单的动作设置为目标url,并将表单方法设置为发布。然后,当链接被单击时,触发一个提交表单的JS函数。

请看这里的例子。这个例子使用纯JavaScript,不使用jQuery——如果你不想安装更多的东西,你可以选择这个。

<form name="myform" action="handle-data.php" method="post">
  <label for="query">Search:</label>
  <input type="text" name="query" id="query"/>
  <button>Search</button>
</form>

<script>
var button = document.querySelector('form[name="myform"] > button');
button.addEventListener(function() {
  document.querySelector("form[name="myform"]").submit();
});
</script>

你可以使用javascript函数。JQuery有一个很好的内置post函数,如果你决定使用它:

JQuery的帖子

<script language="javascript"> 

   function DoPost(){
      $.post("WhateverPage.php", { name: "John", time: "2pm" } );  //Your values here..
   }

</script>

<a href="javascript:DoPost()">Click Here</A> 

我建议一种更动态的方法,没有html编码到页面中,严格保持JS:

$("a.AS-POST").on('click', e => {
  e.preventDefault()
  let frm = document.createElement('FORM')
  frm.id='frm_'+Math.random()
  frm.method='POST'
  frm.action=e.target.href
  document.body.appendChild(frm)
  frm.submit()
})

除了使用javascript,还可以使用标签发送隐藏表单。非常简单和小的解决方案。标签可以在html中的任何地方。

<form style="display: none" action="postUrl" method="post"> <button type="submit" id="button_to_link"> </button> . > < /形式 <label style="text-decoration: underline" for="button_to_link">张贴的链接</label>