Мне нужно сохранить некоторый параметр карты в моем проекте symfony, для этого мне нужно реализовать некоторый 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);
}
});
});
Я проверяю url recherche/ajax
, он существует и возвращает "Это не Ajax", как ожидалось. Но console.log не возвращает никакого значения...
Это правильный способ сделать это?
РЕДАКТИРОВАТЬ: Похоже, что контроллер не может обрабатывать запрос 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?)