Javascript cross-domain resuelto con PHP
Problema cross-domain en Javascript
De una forma sencilla, digamos que en principio no es posible acceder desde el javascript de una página en el dominio A a otra en el dominio B.
Es decir, si desde javascript queremos hacer una petición desde www.ejemplo.com/index.html a www.midominio.com/index.html, por motivos de seguridad no podemos.
Hay una forma de acceder a esos datos, y es que si lo hacemos a través del formato JSONP, no hay mayor problema, pero como sabrás, no todas las páginas a las que queremos acceder por lo que sea, tienen el formato JSONP disponible.
¿Cómo se resuelve esto? Pues aquí es cuando entra Simple PHP Proxy.
Simple PHP Proxy
Para acceder a una página que no está en nuestro dominio y no tiene el formato JSONP, utilizamos esta clase.
La idea es que el servidor donde se va a ejecutar nuestro código haga una copia local de la página a la que vamos a acceder a través de Javascript, y así no estamos haciendo cross-domain, estamos en nuestro servidor!

Te podrías plantear la duda de: ¿y por qué no lo hago a mano? Bueno el problema es que las páginas cambian y hacerlo de manera manual, cada vez que quieras acceder a otro dominio te va a ser casi imposible.
Cómo utilizar Simple PHP Proxy
En la página de ejemplo podemos ver como funciona y el código en sí, en el que se utiliza para mostrar las cabeceras de un dominio que se le pase a través de Javascript, lo que demuestra que ha podido acceder a ese dominio superando así el problema del cross-domain.
Enlaces
Página del proyecto | benalman.com
Código y seguimiento | Github
Documentación más exhaustiva | benalman.com
Código fuente de Simple PHP Proxy | Descarga

2 Comentarios
Esta solución es curiosa, no obstante sigue teniendo la limitación de que es el servidor quien tiene que hacer las peticiones al servidor externo.
En VP estuvimos pensando en implementar un JS que consultase a la API de Spotify para mostrar el link de reproducción de cada canción, asi que nos topamos con el problema del ajax cross-domain. Valoramos una solución parecida a esta, pero finalmente la descartamos porque supondría que nuestro servidor estaría consultando continuamente a la API de Spotify (la gracia es que cada cliente lo pudiese hacer desde su IP).
En realidad es la primera solución que me gusta un poco al cross-domain, sigo investigando en cualquier caso, a ver si veo una alternativa más sencilla y eficiente y hago un post sobre ello.