为什么在使用绝对URL时HTML POST表单被解释为GET?

时间:2015-10-02 16:30:20

标签: apache http-post html-form html-form-post

我在本地编写测试HTML表单,在action字段中调用远程网页。但是我想虽然设置为POST,但表单只会发送GET数据。我把它移到远处的服务器上,但它的行为方式相同。然后我将绝对URL更改为相对URL并且它有效。

是否需要,或者是否有一些服务器设置可以更改此行为?

这是一个几乎最小的形式再现问题:

<form action="http://example.com/foobar.php" method="post">
  <input type="text" name="blah">
  <input type="submit" value="Submit">
</form>

为了测试目的,foobar.php可以包含

<?php echo $_SERVER['REQUEST_METHOD']; ?>

编辑:必须我的设置有问题,因为我可以在网上找到大量类似的和假设的工作样本(实际上这是我最后应该实现的)

1 个答案:

答案 0 :(得分:0)

知道了,这是因为POST data is discarded on 301 Permanent Redirect,而我正在使用带有RedirectMatch 301的ServerAlias。

解决方案可能是to use 307 Temporary Redirect,但我想我会坚持使用主ServerName。