Ho bisogno di memorizzare alcuni parametri della mappa nel mio progetto symfony, per fare questo ho bisogno di implementare alcuni Ajax nella mia vista che sarà in grado di passare alcune informazioni al controller.Come fare una richiesta Ajax POST con Symfony e Jquery
Ho letto i documenti, provo a scrivere del codice ma non riesco a farlo funzionare. E Ajax è davvero doloroso per il debug. Qui è la parte del controller:
/**
* @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);
}
E il 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);
}
});
});
verifico l'url recherche/ajax
esso esiste e tornare la 'Questo non è l'Ajax' come previsto. Ma console.log non restituisce alcun valore ...
E 'questo il modo giusto per farlo?
EDIT: Sembra che il controller non può gestire POST Request. Ho provato a modificare le annotazioni a:
/**
* @Route("/ajax", name="_recherche_ajax")
* @Method({"GET", "POST"})
*/
ma restituisce:
([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?)
La risposta restituisce "non definito" o non viene generato nulla? – Touki
Non ho niente nella mia console ... – Xavier
Questo è molto probabilmente dovuto all'errore 'FATAL' in PHP. Prova ad inserire direttamente un indirizzo di richiesta Ajax nel browser (lo so, non è 'POST') e vedi se c'è qualche errore di Symfony ... –