Ver índice de contenidos del libro

7.5. Trabajar con JSONP

En los últimos tiempos, la introducción de JSONP, ha permitido la creación de aplicaciones híbridas de contenidos. Muchos sitios importantes ofrecen JSONP como servicio de información, el cual se accede a través de una API (en inglés Application programming interface) predefinida. Un servicio particular que permite obtener información en formato JSONP es Yahoo! Query Language, el cual se utiliza a continuación para obtener, por ejemplo, noticias sobre gatos:

Utilizar YQL y JSONP

$.ajax({
    url : 'http://query.yahooapis.com/v1/public/yql',
 
    // se agrega como parámetro el nombre de la función de devolución,
    // según se especifica en el servicio de YQL
    jsonp : 'callback',
 
    // se le indica a jQuery que se espera información en formato JSONP
    dataType : 'jsonp',
 
    // se le indica al servicio de YQL cual es la información
    // que se desea y que se la quiere en formato JSON
    data : {
        q : 'select title,abstract,url from search.news where query="cat"',
        format : 'json'
    },
 
    // se ejecuta una función al ser satisfactoria la petición
    success : function(response) {
        console.log(response);
    }
});

jQuery se encarga de solucionar todos los aspectos complejos de la petición JSONP. Lo único que debe hacer es especificar el nombre de la función de devolución (en este caso callback, según lo especifica YQL) y el resultado final será como una petición Ajax normal.