如何使用Symfony和Jquery提出POST Ajax请求
我需要在我的symfony项目中存储一些map参数,为此,我需要在我的视图中实现一些Ajax,以便能够将一些信息传递给控制器。
我阅读了文档,尝试编写一些代码,但我无法使其正常工作。而Ajax的调试真的很痛苦。以下是控制器部分:
/**
* @Route("/ajax", name="_recherche_ajax")
*/
public function ajaxAction()
{
$isAjax = $this->get('Request')->isXMLHttpRequest();
if ($isAjax) {
return new Response('This is ajax response');
}
return new Response('This is not ajax!', 400);
}
和JS:
map.on('zoomend', function(e) {
// use callback e variable
console.log('zoom: ' + e.target.getZoom());
$.ajax({
type: "POST",
url: "/recherche/ajax",
data: {
zoom: e.target.getZoom()
},
dataType: "json",
success: function(response) {
console.log(response);
}
});
});
我检查它确实存在的网址,并按预期返回“这不是Ajax”。但是控制台.log不返回任何值...recherche/ajax
这是正确的方法吗?
编辑:看起来控制器无法处理 POST 请求。我试图修改注释为:
/**
* @Route("/ajax", name="_recherche_ajax")
* @Method({"GET", "POST"})
*/
但它返回:
([Semantical Error] The annotation "@Method" in method MySite\SiteBundle\Controller\RechercheController::ajaxAction() was never imported. Did you maybe forget to add a "use" statement for this annotation?)