Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将GET替换为POST_Javascript_Php_Ajax - Fatal编程技术网

Javascript 将GET替换为POST

Javascript 将GET替换为POST,javascript,php,ajax,Javascript,Php,Ajax,在这里,我试图重定向新页面,我想发送一个变量。它使用GET 我怎样才能用POST完成它 window.location.href = 'start.php?userid='+userid; start.php <?php $user_id=$_GET['userid']; //should be post ?> 您可以通过html标记和发布表单。否则,请参阅以获取异步post。 对于创建表单标记的第一种情况,将INPUT type=hidden放入其中并设置其将被发布的值

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

我怎样才能用POST完成它

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

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

您可以通过html标记和发布表单。否则,请参阅以获取异步post。
对于创建表单标记的第一种情况,将INPUT type=hidden放入其中并设置其将被发布的值。

您需要在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>

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

在您的情况下,由于看起来您仍然需要整页刷新,只需动态创建一个表单:

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();

我认为这个答案可以帮助你:

您只需要在单击链接时使用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>

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

您只需从下载jquery.redirect.min.js文件并将其与php文件链接,然后如上所述使用。就这样。希望我能帮忙


对我来说很好。

请打电话。我不能用jquery@Karimkhan请参阅帖子请求部分不要推荐w3schools.com作为参考。它充满了错误,请参阅。除非询问jQuery答案,或者它在标记中,否则请不要使用jQuery回答问题。这不是一个标准。为什么需要使用POST?还要注意,在手动传递变量名和值时,需要使用encodeURIComponent。@moonwave99:很容易被黑客攻击。如何获取我发布的变量以及如何在另一端接收它/?默认情况下重定向是否使用“POST”方法?是的。此方法的默认方法是“POST”。Aha。一般来说,插件的作用与另一个答案所建议的相同,但方式很简单。因此,+1。
   $().redirect("myPhp.php", { name: "John" });