我正在尝试扩展一个使用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框架无关,但是当我在框架外调用文件时,我得到了相同的结果。
有什么想法吗?
答案 0 :(得分:1)
我正在向http://domain发出请求,设置为重定向到http://www.domain,因为事实证明将POST请求转换为GET请求。并且邮递员不会通知用户发生此类重定向。
如果您遇到此问题,请务必检查是否发生了重定向。
我想知道为什么这只发生在POST请求中,而不是PUT,PATCH,DELETE,......请求。
感谢LSerni,Alex Blex和Vaviloff指出我正确的方向。