<a href="employee.action" id="employeeLink">Employee1</a>
当我单击Employee1链接时,GET请求转到服务器。我想让它而不是GET请求。 有没有办法可以改变href的默认GET行为?
注意: - 我知道可以在超链接点击时调用javascript函数,然后创建表单并提交它。但我正在寻找我们可以提及的地方 锚标记中的某些属性可以发出POST请求而不是GET请求吗?
答案 0 :(得分:24)
使用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.onload=function() {
document.getElementById("employeeLink").onclick=function() {
document.getElementById("myForm").submit();
return false; // cancel the actual link
}
}
如果没有表格,我们需要制作一个
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
}
}
答案 1 :(得分:10)
要执行 POST ,您需要表单。
<form action="employee.action" method="post">
<input type="submit" value="Employee1" />
</form>
有一些方法可以使用超链接发布数据,但是您需要一些javascript和表单。
一些技巧:Make a link use POST instead of GET和How do you post data with a link
编辑:要加载框架上的响应,您可以将表单定位到框架:
<form action="employee.action" method="post" target="myFrame">