我使用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)
这是请求的转储:
答案 0 :(得分:0)
您能否提供更具体的转储请求 - >请求&请求 - >查询?
与以下帖子相关,我同意你应该使用FOSJsRoutingBundle。它让你公开symfony路由。
答案 1 :(得分:0)
我建议您使用允许您将Symfony路由公开给JavaScript的FOSJsRoutingBundle