Slim 框架和 GET/PUT/POST 方法

Slim framework and GET/PUT/POST methods

例如,我使用这段代码来测试路由:

$app->get('/api', function () {                         
        echo 'get!';
});
$app->post('/api', function () {                            
        echo 'post!';
});
$app->put('/api', function () {                         
        echo 'put!';
});

为了 api 测试,我使用 RestClient 插件 Chrome。

当我尝试执行 GET 请求时,响应是 'get!'。不错。

但是:

  1. 当我尝试执行 POST 请求时,响应也是 'get!'。为什么?它必须是 'post!'.

  2. 当我尝试执行 PUT 请求时,(在响应 Headers: Allow: GET,HEAD,POST,OPTIONS,TRACE 中)Slim 响应有 405 错误(方法不是允许)与消息:

"The requested method PUT is not allowed for the URL /api."

我做错了什么?

请确保您的 .htaccess 是以下内容(来自 slimphp/Slim@2.x):

RewriteEngine On

# Some hosts may require you to use the `RewriteBase` directive.
# If you need to use the `RewriteBase` directive, it should be the
# absolute physical path to the directory that contains this htaccess file.
#
# RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]