用POST替换GET

时间:2013-11-03 12:13:47

标签: javascript php ajax

这里我试图重定向新页面,我想发送一个变量。它使用GET。

如何使用POST进行操作?

window.location.href = 'start.php?userid='+userid;

start.php

<?php
    $user_id=$_GET['userid']; //should be post
?>

5 个答案:

答案 0 :(得分:3)

您必须将数据提交到服务器,而不仅仅是重定向浏览器。

在您的情况下,因为看起来您想要完整页面刷新,只需动态创建表单:

var oForm = document.createElement("form");
oForm.method = "POST";
oForm.action = "start.php";
var oInput = document.createElement("input");
oInput.name = "userid";
oInput.value = userid;
oForm.appendChild(oInput);
document.body.appendChild(oForm);
oForm.submit();

答案 1 :(得分:2)

您需要在HTML中声明一个假表单,并触发一个触发javascript提交表单的链接,如下所示

<form action="start.php" method="post">
<input type="hidden" name="userid" value="[userid]">
</form>

<script type="text/javascript">
function submitlink() 
{
document.forms[0].submit();
}
</script>
<a class="buttondown" onclick="submitlink()">Submit Link</a>

答案 2 :(得分:2)

我认为这个答案可以帮到你:
How do you force a web browser to use POST when getting a url?

您只需要使用javascript按需创建表单,以便在单击链接时使用POST方法发送数据 所以基本上只是这一部分:

<script type="text/javascript">
function submitAsPost(url) {
    var postForm = document.createElement('form');
    postForm.action = url;
    postForm.method = 'post';
    var bodyTag = document.getElementsByTagName('body')[0];
    bodyTag.appendChild(postForm);
    postForm.submit();
}
</script>
<a href="/my/url" onclick="submitAsPost(this.href); return false;">this is my post link</a>

答案 3 :(得分:2)

我遇到了同样的问题。如果您使用jquery.redirect.min.js作为您的jquery插件,您可以使用如下。它为您提供 POST 方法。

   $().redirect("myPhp.php", { name: "John" });

您只需从here 下载jquery.redirect.min.js文件 ,然后 将其与您的php文件关联 ,并按上述方式使用。而已。希望我帮忙。

对我来说很好。

答案 4 :(得分:0)

您可以通过html标签发布表单。否则,请参阅"jQuery.post"了解异步信息 对于第一种情况,您创建FORM标记,将INPUT type =“hidden”放入其中并设置将要发布的值。