PHP REQUEST_METHOD POST变为GET

时间:2017-01-12 17:11:17

标签: php codeigniter php-5.4

我正在尝试扩展一个使用CodeIgniter 1.7的旧Web应用程序(我知道......)并且遇到了一些麻烦。我希望某个路由只能通过 POST 请求访问。所以在函数的顶部我有以下内容;

if ($_SERVER['REQUEST_METHOD'] != 'POST')
    die ('Wrong request method: ' . $_SERVER['REQUEST_METHOD']);

本地,在PHP 7.0.14上使用PHP的内置Web服务器,这很好用。但是,在生产中,在运行PHP 5.4.25的CPanel管理的服务器上,它没有。

当使用Postman向我的路线发送 POST 请求时,我得到以下内容;

  

错误的请求方法: GET

PUT PATCH DELETE ,...请求都被正确识别。但是, POST 请求似乎神奇地变成了 GET 请求。

我随请求发送的

POST 数据似乎也消失了,并且在$_POST$_GET中都找不到。

它似乎与CodeIgniter框架无关,但是当我在框架外调用文件时,我得到了相同的结果。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我正在向http://domain发出请求,设置为重定向到http://www.domain,因为事实证明将POST请求转换为GET请求。并且邮递员不会通知用户发生此类重定向。

如果您遇到此问题,请务必检查是否发生了重定向。

我想知道为什么这只发生在POST请求中,而不是PUT,PATCH,DELETE,......请求。

感谢LSerni,Alex Blex和Vaviloff指出我正确的方向。