Il formato
JSON, standardizzato da
Douglas Crockford, è molto utilizzato dagli sviluppatori JavaScript specialmente per scambiare dati tramite l’oggetto
XMLHttpRequest. Ovviamente anche questa tecnologia subisce le limitazioni della famigerata
same origin policy, che impedisce, per motivi di sicurezza, di accedere a metodi e proprietà di pagine internet in un altro dominio.
Ci sono diversi modi per aggirare questa barriera, che a seconda delle esigenze può risultare particolarmente scomoda. Una alternativa molto promettente è
CORS, Cross-Origin Resource Sharing, che è in pratica una
estensione di XMLHttpRequest: il server al quale vengono inoltrate le richieste può accettarle e processarle se vengono rispettate alcune condizioni, ad esempio se il richiedente è parte di un insieme di domini affidabili. Nonostante le buone premesse, al momento attuale
CORS non è ancora uno standard, è non è ancora disponibile universalmente, né lato client né lato server.
In mancanza di mezzi più raffinati, possiamo sfruttare
JSON-P che è in realtà una sorta di
hack di
JSON, che non utilizza
XMLHttpRequest. Attraverso un comune tag
script possiamo iniettare una funzione residente in altro dominio e passarle anche dei parametri di
callback. Per vederne qualche esempio si può leggere un
breve articolo di
Vladimir Carrer pubblicato sul suo blog.
Per usare
JSON-P, in attesa di soluzioni più sicure, possiamo appoggiarci a una libreria JavaScript sviluppata da
Abdulrahman Al-Otaiba e ospitata su
GitHub:
FlyJSONP; una volta inclusa questa libreria, è banale passare dei dati, sia tramite
GET sia tramite
POST, specificando direttamente, oltre all’URL, anche tutti i parametri e le funzioni di callback relative al completamento dell’operazione o al sorgere di errori.