【问题标题】:Respons for request always returns GET请求的响应总是返回 GET
【发布时间】:2019-08-04 16:36:44
【问题描述】:

我有 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'] 解决问题。

【问题讨论】:

    标签: rest api codeigniter codeigniter-3


    【解决方案1】:

    你能试试下面的代码吗:

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

    【讨论】:

    • 还是不行。问题可能出在路线或其他 .htaccess 配置中吗?
    • xxxxxxxxxx - - [05/Aug/2019:22:23:43 +0200] "GET /rest/ping HTTP/1.1" 200 67 "-" "PostmanRuntime/7.15.2" xxxxxxxxxx - - [05/Aug/2019:22:24:01 +0200] "POST /rest/ping HTTP/1.1" 400 67 "-" "PostmanRuntime/7.15.2" xxxxxxxxxx - - [05/Aug/2019:22:24:57 +0200] "DELETE /rest/ping HTTP/1.1" 400 67 "-" "PostmanRuntime/7.15.2" xxxxxxxxxx- - [05/Aug/2019:22:25:22 +0200] "PUT /rest/ping HTTP/1.1" 400 67 "-" "PostmanRuntime/7.15.2"$_SERVER['REQUEST_METHOD'] 总是看到 GET
    • 我在单个 PHP 文件中检查了 $_SERVER['REQUEST_METHOD'],它可以工作 - 它响应 POST GET PUT DELETE 所以问题出在 CodeIgniter 配置中,但我不知道在哪里。
    猜你喜欢
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 2020-03-17
    • 2015-05-26
    • 2017-12-07
    • 1970-01-01
    相关资源
    最近更新 更多