【发布时间】:2018-04-27 00:58:19
【问题描述】:
我使用 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)
这是请求的转储:
【问题讨论】:
-
请求方式为 Post ..
-
你得到了正确的。只需查看stackoverflow.com/a/9788435/2236219。 GET 和 POST 方法在控制器中具有不同的访问方式。
-
我看到了这个答案,我试过了,但还是不行
-
我都使用过 $request->query->get('name');和 $request->request->get('name') 但它们似乎都没有完成这项工作。这就是为什么我不知道我的代码出了什么问题
-
你能给我们一个有问题的
$request转储吗?