当使用注释进行路由时,symfony2 ajax post变为get

时间:2012-06-08 19:09:46

标签: php ajax symfony

我最近在我的symfony2包上切换了路由,以便在控制器中使用内联注释而不是routing.yml文件。之后,ajax发布请求开始没有参数。我调查了一下,注意到日志显示了帖子请求为[REQUEST_METHOD] =>得到。取消注释路线将请求转到了帖子。在切换路由之前,事情已经完成了。

这是控制器和路线

class DefaultController extends Controller
{

  /**
   * @Route("/emailShare/", name="emailShare")
   * @Method({"GET", "POST"})
   */
  public function indexAction()

和jquery ajax

$.ajax({
        type : 'post',
        url: '/v2/social/emailShare',

如果我使用curl发布到同一个网址,它会在日志中显示为帖子。

curl -d "param1=value1&param2=value2" http://mysite.com/v2/social/emailShare/

1 个答案:

答案 0 :(得分:0)

我的基于注释的路由通过POST执行Ajax调用没有问题。与您的设置有一些不同之处:我根本没有在控制器中使用@Method注释,而(FWIW)我的jQuery Ajax方法值全部都是大写。例如:

class DefaultController extends Controller
   {
    /**
     *
     * @Route("/", name="emailShare")
     */
    public function indexAction()

和jQuery(我正在使用Twig设置路径):

  $.ajax({
      type: 'POST',
      url: '{{path("emailShare")}}',

相关的routing.yml行:

AcmeDemoBundle:
resource: "@AcmeDemoBundle/Controller/"
type:     annotation
prefix:   /