Han surgido distintas soluciones para resolver ese problema, siendo la más reciente la que se explica en esta página (via Willison).
CSS HTTP Request (CHR) se sirve del hecho de que los archivos CSS no se ven afectados por la política de same-origin por lo que puede utilizarse para transportar datos si se controla desde Javascript. Además cuenta con la ventaja de que, a diferencia de JSONP que utiliza una etiqueta
SCRIPT
para realizar la llamada, no se cede el control al servicio web, lo que está considerado como un agujero de seguridad.
La función propuesta en su librería tiene dos parámetros, la URL del servicio web y la función que se llamará cuando se disponga de los datos:
CSSHttpRequest.get( "http://www.nb.io/hacks/csshttprequest/hello-world/", function(respuesta) { alert(respuesta); } );El funcionamiento es curioso: en el servidor, los datos se dividen en bloques de 2KB y se codifican en líneas
@import(about:chr:DATA)
Como último detalle, en Firefox 3 los archivos CSS sí que tienen la restricción de Same-Origin pero los autores han conseguido resolver el problema y también funciona correctamente con el navegador.
Descargar. Addendum: JSONet es una librería pensada para aprovechar esta técnica de comunicación con el servidor sin la limitación Same-Origin.
No hay comentarios:
Publicar un comentario