如何重定向浏览器并在PHP中发送HTTP POST请求?如果您愿意,可以header("Location: file.php?foo=bar")
个{i}个HTTP POST请求。
答案 0 :(得分:5)
您不能 - HTTP不允许这样做 - 如果您想通过重定向传递参数,则必须将它们作为GET变量嵌入到URL中。
下进行。
答案 1 :(得分:3)
这不会重定向浏览器,但可以执行POST请求。
要重定向浏览器,我建议使用Javascript。
执行POST和重定向的示例表单
<FORM action="http://somesite.com/prog/adduser" method="post">
<P>
<LABEL for="firstname">First name: </LABEL>
<INPUT type="text" id="firstname"><BR>
<LABEL for="lastname">Last name: </LABEL>
<INPUT type="text" id="lastname"><BR>
<LABEL for="email">email: </LABEL>
<INPUT type="text" id="email"><BR>
<INPUT type="radio" name="sex" value="Male"> Male<BR>
<INPUT type="radio" name="sex" value="Female"> Female<BR>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</P>
</FORM>
答案 2 :(得分:2)
我不确定为什么你会对此有任何需要,但不能用任何服务器端语言。
您可以使用jQuery等javascript库来使用帖子请求
来请求页面答案 3 :(得分:1)
我不相信您可以通过在请求中间重定向来获取POST数据。你只限于GET。如果您希望浏览器发布POST内容,则需要构建<form>
并提交。 (或使用AJAX请求。)
答案 4 :(得分:1)
PHP没有这样的东西。要完成您的示例,您只需简单地说$_GET['foo'] = 'bar'; include("file.php")
,但不会更改提供给浏览器的网址。
答案 5 :(得分:1)
这个问题在这里被问到How do you POST to a page using the PHP header() function?。
有人评论说,如果您已经拥有数据,为什么需要在任何地方发布数据,为什么不能只对该页面中的数据采取行动?
答案 6 :(得分:1)
如果您需要在重定向时传输数据而不在URL中显示数据,则可以使用$ _SESSION,首先将数据存储到会话中然后重定向页面,重定向后从会话中获取数据并销毁会话数据。
好的,如果你需要将数据传输到其他网站而不显示在URL中,你必须使用Javascript代替...就像将数据传输到payPal一样。只需创建一个表单并编写一个javascript代码即可在页面加载时自动提交表单。下面是示例代码:
<form name="myform" action="handle-data.php">
Search: <input type='text' name='query' />
<a href="javascript: submitform()">Search</a>
</form>
<script type="text/javascript">
function submitform()
{
document.myform.submit();
}
</script>