如何使用Symfony和Jquery进行POST Ajax请求
如何使用Symfony和Jquery进行POST Ajax请求
我需要在我的Symfony项目中存储一些地图参数,为此我需要在视图中实现一些Ajax,以便能够将一些信息传递给控制器。
我阅读了文档,尝试编写了一些代码,但无法使其正常工作。而且,调试Ajax真的很痛苦。
下面是控制器部分:
/** * @Route("/ajax", name="_recherche_ajax") */ public function ajaxAction() { $isAjax = $this->get('Request')->isXMLHttpRequest(); if ($isAjax) { return new Response('这是Ajax响应'); } return new Response('这不是Ajax!', 400); }
以及JS代码:
map.on('zoomend', function(e) { // 使用回调参数 e console.log('缩放级别:' + e.target.getZoom()); $.ajax({ type: "POST", url: "/recherche/ajax", data: { zoom: e.target.getZoom() }, dataType: "json", success: function(response) { console.log(response); } }); });
我检查了url recherche/ajax
,它确实存在并返回了预期的 '这不是Ajax'。但是console.log没有返回任何值...
这样做的方式正确吗?
编辑:
看起来控制器无法处理POST请求。我尝试修改注解为:
/** * @Route("/ajax", name="_recherche_ajax") * @Method({"GET", "POST"}) */
但它返回:
([Semantical Error] 方法MySite\SiteBundle\Controller\RechercheController::ajaxAction()中的注解“@Method”从未被导入。您可能忘记为该注解添加“use”语句了吗?)