Una llamada Cross Domain con jQuery, AJAX y JSONP

Anteriormente en «Una sencilla llamada AJAX con jQuery» daba las pautas para hacer una petición a un servidor y «pintar / mostrar» el resultado por pantalla. Bien pues se me olvidaba comentar que sólo es válido si las llamadas las hacemos dentro de nuestro dominio, para hacer una llamada a otro dominio hay que hacerla de forma diferente, hay que hacer una llamada Cross Domain.

¿Y por qué existe?

Para intentar evitar el sabotaje/robo en internet como puede ser:

  • Cross Site Request Forgery (XSRF o session riding): Un sitio web lleno de chicas que buscan hombres atractivos como yo (y al que juro que no se cómo he llegado) me roba las cookies de mi navegador y suplanta mi identidad para así, poder acceder a mi facebook, fliker, banca online… etc.
  • Cross Site Scripting (XSS): Un sitio web malo me roba información y la envía a un sitio de terceros usando una inyección de Javascript.

Vale, entendido pero ¿Cómo se hace?

Pues en realidad no es complicado solo es necesario tener en cuenta un par de cosillas y modificar un poquito el lado del servidor. Empezamos por el lado del cliente, el código javascript es muy similar solo hay que cambiar el dataType de JSON a JSONP y quedaría así:

En el lado del servidor la cosa cambia, hay que devolver la información especialmente formateada si la petición es Cross Domain:

Cuando hacemos una petición de este tipo se le envía al servidor un identificador que va dentro de callback, en el servidor la recojemos y la devolvemos junto con la información.

Y con esta entrada termino la serie de 3 sobre llamadas AJAX que me parecen más utiles y de uso continuado día a día.

 

Si te ha resultado útil, ¡Compartelo!Share on LinkedIn
Linkedin
Tweet about this on Twitter
Twitter
Share on Facebook
Facebook
Share on Reddit
Reddit
Email this to someone
email

, , ,

Comments are closed.