0

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

我怎样才能用 POST 做到这一点?

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

开始.php

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

5 回答 5

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();
于 2013-11-03T12:19:19.850 回答
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>
于 2013-11-03T12:18:05.060 回答
2

我认为这个答案可能会对您有所帮助:
如何在获取 url 时强制网络浏览器使用 POST?

您只需要使用 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>
于 2013-11-03T12:19:22.053 回答
2

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

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

您只需要从此处下载 jquery.redirect.min.js 文件并将其与您的 php 文件链接,并按上述方式使用。就是这样。希望我有所帮助。

对我来说很好。

于 2013-11-04T11:45:18.837 回答
0

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

于 2013-11-03T12:17:10.487 回答