接收POST请求的Symfony2 app.php作为GET app_dev.php工作正常

时间:2015-07-07 23:00:41

标签: php symfony post get postman

所以我正在创建一个需要发布的路线。路线如下:

my_route:
  path:     /myroute/login
  defaults: { _controller: "MyBundle:Default:login"}
  methods:  [POST]

所以我使用邮递员点击 app_dev.php / myroute / login ,我得到了正在寻找的正确答案,目前该页面只返回“hello world”。现在,当我将邮差改为 app.php / myroute / login 时,我收到错误消息:

The server returned a "405 Method Not Allowed".

我真的很困惑为什么它说方法不允许,所以我把prod.log文件拖了下来并获得了以下内容:

Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException: "No route found for "GET /myroute/login": Method Not Allowed (Allow: POST)"

我在邮递员中发送请求作为POST请求但不知何故symfony只将它们视为GET请求。我可以再次将网址更改为 app_dev.php / myroute / login 并点击发送即可。我认为这是一个缓存问题所以我尝试了以下内容来清除缓存:

$ php app/console cache:clear --env=prod --no-debug

这仍然无法解决我的问题所以我甚至也从 app / cache / prod 中删除了所有文件。我找不到任何有类似问题的人,所以我希望有人可以指出我正确的方向。我还以为它可能是

2 个答案:

答案 0 :(得分:1)

经过一番挖掘,我发现了问题所在。所以我想也许是邮递员发送错误的方法,所以我搜索了导致这个的那个

Postman sending POST as GET

导致有关htaccess文件的问题:

Redirect POST htaccess

首先,我设置邮递员点击 app.php / myroute / login ,xdebug将请求方法显示为GET。我移动.htaccess文件并点击相同的URL,请求方法显示为POST。我没有点击那个网址,而是将我的.htaccess文件移回去,只指向 / myroute / login ,一切都亮了起来。这是一个非常烦人的练习,所以我希望这将在未来找到同样的问题来拯救其他人。

答案 1 :(得分:0)

对我来说,这种情况是我的错误,即我发送的是 http 而不是 https