Ajax和DefaultController Symfony

时间:2017-11-14 07:09:39

标签: php ajax symfony

我使用Symfony 3并尝试使用Ajax在默认控制器中调用我的函数,如下所示:

$(document).ready(function() {
    $.ajax({
        dataType: "json",
        type: "POST",
        data: {
            action: 'active'
        },
        url: '{{ path ('
        show_chat ')}}',
        success: function(active) {
            if (active === true)
                $('.message-box').fadeIn();
        },
        error: function() {
            console.log('error');
            return false;
        }
    });
});

在默认控制器中,我想返回一个twig模板和一个为true的变量,这样我的聊天窗口就会出现:

return $this->render('ChatBundle:Default:chat.html.twig',$online);

我使用$presence = $request->get('active'); Symfony\Component\HttpFoundation\Response;

我的方法是POST但是当我转储$ request时,方法是GET。我不明白我做错了什么以及为什么它不起作用......请提出任何想法

路由:

show_chat:
path:     /chat
defaults: { _controller: slackChatBundle:Default:chat}
methods: [POST,GET]

如果我只放置POST方法,我会收到一条消息“找不到路由,方法不允许(允许:POST)

这是请求的转储:

dump request

2 个答案:

答案 0 :(得分:0)

您能否提供更具体的转储请求 - >请求&请求 - >查询?

与以下帖子相关,我同意你应该使用FOSJsRoutingBundle。它让你公开symfony路由。

答案 1 :(得分:0)

我建议您使用允许您将Symfony路由公开给JavaScript的FOSJsRoutingBundle