响应请求始终返回GET

时间:2019-08-04 16:36:44

标签: rest api codeigniter codeigniter-3

我有Codeigniter 3,并且正在构建自己的API REST(没有任何外部库)。除了一件事,一切都在工作。当我在POSTMAN程序中以POSTPUTDELETE发出请求时,Codeigniter始终将其识别为GET$_SERVER['REQUEST_METHOD']返回我GET)。如何配置Codeigniter以处理类型POSTPUTDELETE?我的Codeigniter正在HTTPS上工作。在.htaccess中,我有

<Limit PUT DELETE> order allow,deny allow from all </Limit>

解决方案

HOOK中的重定向存在问题。 $_SERVER['REDIRECT_REDIRECT_REDIRECT_REQUEST_METHOD']解决了问题。

1 个答案:

答案 0 :(得分:0)

您可以尝试下面的代码吗?

<LIMIT PUT DELETE OPTIONS PATCH>
  order allow,deny
  allow from all
</LIMIT>

,您还必须自动启动其他应用程序以使用您的API,并允许您的正面控制器或每个访问点的指定控制器中的所有动词:

class Rest_controller extends REST_Controller
{
    public function __construct($config = 'rest')
    {
        parent::__construct($config);

        header('Access-Control-Allow-Origin: *');
        header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Authorization");
        header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
        $method = $_SERVER['REQUEST_METHOD'];
    }
}