【发布时间】:2015-03-21 13:49:03
【问题描述】:
我正在尝试通过 jQuery 中的 $.GET 获取一些数据。我有一个链接,单击此链接后,我想在控制器中接收数据。我做了这个,但它不起作用,$_GET 数组是空的:
html.twig:
<a href="{{path('current')}}" id="get">Some name</a>
<script>
$(document).ready(function() {
$(document).on('click','#get', function(){
$.get({{path('current', {'id' : 'a1'})}}, function( data ) {
console.log(data);
});
});
});
</script>
控制器:
var_dump($_GET);
路线名称没问题。也许其他一些想法如何通过单击链接在控制器中获取数据?我不想使用 $.ajax
【问题讨论】:
-
这是关于交响乐的问题吗? (我从名字
html.twig算出来的)如果是这样,请这样标记。 -
你是用firebug调试的吗?请在 firebug 控制台查看请求参数、响应结果和请求 url。通过 firebug 弄清楚发生了什么。
-
如果用twig渲染,这部分:
$.get({{path('current', {'id' : 'a1'})}},会产生无效的javascript(缺少引号)。 -
不要在 symfony 控制器中使用
$_GET,使用xxxAction(Request $request) { $val = $request->query->get('key'); ... -
关键看路由是怎么配置的。它只会是查询的一部分(
$request->query),如果它不是路由定义的一部分。例如/some-dir/{notId}。但如果它是路由的一部分(/some-dir/{id}),那么你'必须将其注入方法中。例如xxxAction($id)