0

我最近将 symfony2 包上的路由切换为在控制器中使用内联注释而不是 routing.yml 文件。之后,ajax 发布请求开始通过没有参数。我查看了它并注意到日志将发布请求显示为 [REQUEST_METHOD] => GET。取消带注释的路线会将请求变成帖子。在我切换路由之前,事情运行良好。

这是控制器和路线

class DefaultController extends Controller
{

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

和 jquery ajax

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

如果我使用 curl 发布到相同的 url,它会在日志中显示为帖子。

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

1 回答 1

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:   /
于 2012-06-13T16:23:49.897 回答