首页 > 解决方案 > 对请求的响应总是返回 GET

问题描述

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

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

解决方案

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

标签: restapicodeignitercodeigniter-3

解决方案


你能试试下面的代码吗:

<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'];
    }
} 

推荐阅读