Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Usare JSON-P con FlyJSONP
Scritto da Fabio Lelli il 09-09-2011 ore 09:34
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.
Precedente: Usare prodotti open source non basta, parola di Jim Zemlin
Successiva: La leggibilità nei linguaggi di programmazione
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.283 secondi.