Solicitud de jQuery Ajax en Grails

¿Cómo usar jQuery para hacer una solicitud Ajax en las páginas de Grails?

¿Cómo configurar una URL que golpea un método en Grails Controller? Digamos controlador: 'aeropuerto', acción: 'getJson' y la entrada a la acción es 'iata'.

Puedo establecer una URL estática como http://localhost:8080/trip/airport/getJson pero no puedo averiguar cómo pasar la entrada para iata específicamente.

Soy bastante nuevo en Grails y sigo la serie de tutoriales 'Mastering the Grails' de IBM. Sugiérame algún buen tutorial sobre el uso de jQuery con Grails.

preguntado el 03 de mayo de 12 a las 13:05

¿Qué quieres decir con 'entrada a la acción'? ¿identificación? un valor de parámetro? ¿Cuerpo de publicación sin procesar? consulta sin procesar? -

@IgorArtamonov Es un parámetro para el método del controlador. -

2 Respuestas

usa el método $.ajax en jquery

$.ajax({
    url:"${g.createLink(controller:'airport',action:'getJson')}",
    dataType: 'json',
    data: {
        iata: '.............',
    },
    success: function(data) {
        alert(data)
    },
    error: function(request, status, error) {
        alert(error)
    },
    complete: function() {
    }
});

contestado el 03 de mayo de 12 a las 14:05

Sus:

$.ajax({
  url: '/trip/airport/getJson',
  data: {paramName: 'iata'}
});

use el nombre de su parámetro, que está esperando en acción, en lugar de paramName, que he usado.

contestado el 03 de mayo de 12 a las 14:05

¿Es la mejor manera de usar enlaces como /trip/airport... en lugar de g.createLink? - Uladzimir

es la única forma de .js archivo, para gsp g.createLink se prefiere - Ígor Artamonov

Pero js de gsp no estaría en el caché del navegador. ¿Qué se prefiere? :) - Uladzimir

puede usar js, pero configure la ruta base desde gsp (a través de window.myAppPath = '${g.createLink(uri: '/')}) - Ígor Artamonov

¡Gracias! No estoy seguro de que el uso de variables globales sea la mejor manera, pero ahora sé cómo usar etiquetas de griales en js. - Uladzimir

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.