如何在PHP中重定向浏览器并发送HTTP POST请求?如果您愿意,可以使用header("Location: file.php?foo=bar")
来实现HTTP POST请求。
您无法这样做 - HTTP不允许此操作 - 如果您想通过重定向传递参数,它们必须作为GET变量嵌入到URL中。
C.
这并不会重定向浏览器,但可以执行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>
<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>
我不相信你可以通过在请求过程中重定向浏览器来POST数据。你只能使用GET。如果你想让浏览器POST一些东西,你需要构建一个<form>
并提交它。(或者使用AJAX请求。)
PHP没有类似的功能。为了满足你的需求,你只需要简单地写: $_GET['foo'] = 'bar'; include("file.php")
,但是被传递给浏览器的URL不会改变。
这个问题在这里被问到:如何使用PHP header()函数提交页面?。
有人评论说,如果您已经拥有数据,为什么需要将其发布到其他地方?为什么不能在该页面上直接处理数据呢?