Do not speak Spanish? Read this post in English.

Lunes, 20 de Abril de 2009.

ajax cross-domain con jquery y jsonp

Jsonp es una forma de conseguir algo parecido a ajax cross-domain. Ajax, por motivos de seguridad nunca ha incluido la posibilidad de lanzar peticiones fuera del dominio cargado lo cual lo invalida como tecnología para usar servicios web de terceros.

Con jsonp esto es posible puesto que lo que hacemos realmente no es una llamada ajax sino una carga de un script js completo que lo que hace es lanzar una función que definimos en la llamada y que actúa como callback.

  • Más información: jsonp

Jquery contiene entre sus funciones Ajax desde hace tiempo la opción usar jsonp como forma de cargar contenido. El problema, por el cual esto pasa desapercibido, es que se incluye en su funcion getJSON y al no ser exactamente lo mismo un json que un jsonp esto lleva a confusiones.

Para hacer una llamada jsonp usando jquery tenemos que usar la función getJSON indicando al final la variable que va a definir el nombre de la función a ejecutar como callback con un "?". Si hacemos esto el resto de opciones las manejamos como en una llamada ajax de jquery cualquiera:

$.getJSON("http://dominioExterno.com/pagina?var1=valor1&callback=?",
  function(data){
    data.value; // data es el json cargado por jsonp
  });

Esto hace realmente sencillo el manejo de ajax cross-domain con jsonp ya que ni siquiera tenemos que ponerle nombre a la función de callback y podemos definirla en el mismo momento de la llamada.

Posts Relacionados:

  1. JSONP : JSON con Padding
  2. Insertar twitter en tu web con jquery
  3. Posicionar Ajax | Seo con Ajax
  4. Plugin jQuery para editar textos en la propia página | jeditable
  5. jquery seo

Temas Relacionados: jquery programacion

Anímate y deja tu comentario