受影响的Symfony版本:4.2.1
说明
我正在尝试向URL发出POST请求
POST http://localhost:3000/api
并收到响应
{"message":"No route found for \u0022POST \/api\u0022"}```
但是POST http://localhost:3000/api/
可用
我也阅读了本节 https://symfony.com/doc/current/routing.html#redirecting-urls-with-trailing-slashes
在发出POST请求时如何从末尾删除斜杠? 我没有找到简单的方法来制作它,并认为这是错误。 问题已创建https://github.com/symfony/symfony/issues/29706
我得到了答案: https://symfony.com/blog/new-in-symfony-4-1-configurable-trailing-slash-on-imported-routes
中说明了此问题的解决方案在yaml文件中,我们只需设置trailing_slash_on_root: false
。
谁能帮我用我的php配置删除斜杠的最佳方法?
如何复制
routes.php
<?php
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;
# Api
$routesApi = new RouteCollection();
$routesApi->add('api', (new Route(''))
->setDefault('_controller', [App\Controller\Api\DefaultController::class, 'index'])
->setMethods('POST')
);
$routesApi->addPrefix('api');
$routesApi->addNamePrefix('api_');
# Default app
$routes = new RouteCollection();
$routes->addCollection($routesApi);
return $routes;
路由器调试
[vagrant@localhost htdocs]$ php bin/console debug:router
------------------ -------- -------- ------ --------------------------
Name Method Scheme Host Path
------------------ -------- -------- ------ --------------------------
api_api POST ANY ANY /api/
------------------ -------- -------- ------ --------------------------