saber si la peticion es ajax o no?

69 views
Skip to first unread message

Danny alfonzo Viana perez

unread,
Apr 23, 2012, 1:16:05 PM4/23/12
to symfo...@googlegroups.com
Hola quisiera saber si la peticion es ajax? 
en django existe un metodo llamado HttpRequest.is_ajax()

quisiera saber si en symfony 2 hay un equivalente, no lo encuentro en la documentacion oficial

Danny alfonzo Viana perez

unread,
Apr 23, 2012, 2:11:22 PM4/23/12
to symfo...@googlegroups.com
ya lo encontre, en el controlador:

if($this->container->get('request')->isXmlHttpRequest()){
$is_ajax = "es ajax!";
}else{
$is_ajax = "no lo es!";
}

ahora el problema que tengo es que no puedo hacer la llamada ajax con jquery $.ajax(), estoy utilizando el bundle fosjsrouting para generar las url desde javascript y aun así no me funciona:

<script type="text/javascript" src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script type="text/javascript" src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>

<script>
$(document).ready(function() {
$.ajax({
async:true,
url: Routing.generate('producto', { 'producto': '53' }),
//url: "/p/45/",
dataType: 'html',
cache: false,
success: function(respuesta){
$("#producto_ajax").html(respuesta);
}
}); 
});
</script>

con la linea amarilla ...  de da el error que dice que la rula producto no esta definida
y con la verde ... no me da error pero no hace el ajax

la ruta esta definida:

producto:
    pattern:  /p/{producto}/
    defaults: { _controller: FrontendBundle:Default:producto }

y por la barra de direcciones funciona perfectamente.

alguien sabe que me esta faltando?

Carlos Zuniga

unread,
Apr 23, 2012, 2:27:14 PM4/23/12
to symfo...@googlegroups.com
2012/4/23 Danny alfonzo Viana perez <dannyfi...@gmail.com>:
Sale la ruta cuando entras a tu url.com/js/routing.js?
Si no, intenta borrar el archivo fosJsRouting.json en tu directorio de
cache y verifica que lo este generando.

Saludos
--
Linux Registered User # 386081
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.

Danny alfonzo Viana perez

unread,
Apr 23, 2012, 2:38:47 PM4/23/12
to symfo...@googlegroups.com
listo ya funciona, revise como me indicaste el archivo /js/routing?callback=fos.Router.setData y no se generaba, resulta que es obligatorio poner 

options:
        expose: true

en la definición de la ruta!

producto:
    pattern:  /p/{producto}/
    defaults: { _controller: FrontendBundle:Default:producto }
    options:
        expose: true

GRACIAS!
Reply all
Reply to author
Forward
0 new messages