如何将GET请求转换为POST

时间:2016-06-02 06:09:59

标签: javascript java jquery spring-mvc

我不知道是否可能。我提到了一些网站,但我没有得到确切的答案。

I am using 
<a href="xyz?id=4"> click </a>

当我在响应页面中将此请求发送到服务器时,我可以在地址栏中看到“id = 4”,显然这是不安全的,但在帖子请求中我们看不到这一点。

所以我们可以将get请求转换为post或ant其他方式将其隐藏在地址栏中。

提前致谢。

3 个答案:

答案 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>

其次,更重要的是,GETPOST在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();
    }

希望这可以解决您的问题。