Quando si crea un mashup, collezionando input da sorgenti diverse, ci si può scontrare con la politica di protezione del browser, che impeisce a uno script caricato dal server X di aprire una connessione con il server Y.
La soluzione? Un proxy, come il proxy PHP pubblicato da Yahoo.
Perché serve un proxy è illustrato efficacemente dai disegni che troviamo nella documentazione della Yahoo developer connection nell’articolo che illustra perché utilizzare un proxy.
La politica di protezione del browser consente il collegamento a servizi presenti sul host da cui si è scaricato lo script in esecuzione:
Non è ammesso, invece che uno script si connetta a un server terzo:
La soluzione è quella di utilizzare un proxy, cioè un intermediario da caricare sul sito in cui stiamo creando la nostra applicazione e a cui demandare la connessione effettiva verso il server da cui vogliamo prelevare dei dati
Il proxy usa una variabile globale, chiamata HOSTNAME per conservare il nome del sistema a cui collegarsi. Questa variabile si può impostare come segue:
define ('HOSTNAME', 'https://search.yahooapis.com/');
Infine, ecco come si può usare il proxy
// path contiene il path della richiesta, con l'esclusione del server
var path = 'VideoSearchService/V1/videoSearch?appid=YahooDemo&query=madonna&results=2';
// Il percorso completo del proxy
var url = 'https://localhost/php_proxy_simple.php?yws_path=' + encodeURIComponent(path);
... // la chiamata al proxy
xmlhttp.open('GET', url, true);
Per saperne di più ecco l’articolo in Inglese della Yahoo Developer Network.