我不知道是否可能。我提到了一些网站,但我没有得到确切的答案。
I am using
<a href="xyz?id=4"> click </a>
当我在响应页面中将此请求发送到服务器时,我可以在地址栏中看到“id = 4”,显然这是不安全的,但在帖子请求中我们看不到这一点。
所以我们可以将get请求转换为post或ant其他方式将其隐藏在地址栏中。
提前致谢。
答案 0 :(得分:2)
首先,要将GET
转换为POST
,只需将链接更改为表单:
<form id="myForm" action="xyz" method="post">
<input type"hidden" name="id" value="4"/>
</form>
此表单将不可见,您可以使用链接中的JavaScript轻松自动提交该表单:
<a href="javascript:void document.getElementById('myForm').submit();"> click </a>
其次,更重要的是,GET
和POST
在HTTP上同样不安全。要保护它们,请使用HTTPS,它们将同样安全,因此如果GET
适合您,则无需更改。
答案 1 :(得分:1)
<a href="#" onclick="postForm()"> click </a>
动态创建一个from并发布它。
function postForm() {
var form = $('<form method="POST" action="xyz"></form>');
$(document.body).append(form);
form.append('<input type="hidden" name="id" value="4"/>');
form.submit();
}
正如Racil在评论中建议的那样,您也可以执行以下操作
<a href="#" id="postLink"> click </a>
然后
$('#postLink').click(function(e){
e.preventDefault();
//create form and post
});
答案 2 :(得分:0)
在onclick上调用一个java脚本函数,它将使用post方法提交表单,或者你可以使用ajax调用来发布数据并获得你想要的结果。在函数中使用id作为参数。
<a href="#" onclick="postData(4)">
/// Javascript function for ajax call
function postData(id){
var param = { "Id": id};
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "xyz.aspx",
data: JSON.stringify(param),
success: function (data) {
/// Recive data here or do your stuff here
}
}
创建一个隐藏单一输入类型的表单,然后单击该输入类型隐藏元素的设置值,并使用jquery提交表单。
<form id="target" action="destination.html">
<input type="hidden" id="hiddenValue">
</form>
/// Javascript function for setting value of hidden element and form submission using jquery
function postData(id){
$("#hiddenValue").val(id);
$("#target").submit();
}
希望这可以解决您的问题。