Non sarà possibile utilizzare l'intera API REST con JSONP. Puoi chiamare le richieste GET solo con JSONP (funziona scrivendo un nuovo tag <script>
sul documento corrente, quindi chiamando un callback javascript ...).
Per utilizzare tutto il verbo HTTP (POST, DELETE, PUT), è possibile utilizzare il protocollo CORS: http://www.w3.org/TR/access-control/.
CORS è un protocollo negoziato tra un browser e un web-service che dice al browser che si tratta di “OK” per eseguire codice JavaScript da una chiamata cross-domain
Per utilizzare questo, è sufficiente includere alcune intestazioni personalizzate nella risposta del server che comunichino al browser che è accettabile accettare richieste interdominio. Ecco un post sul blog che spiega come implementarlo con RubyOnRails (ma dovrebbe essere abbastanza simile con altri framework ...): http://www.tsheffler.com/blog/?p=428
È la soluzione più semplice, è possibile utilizzare backbone.js come se si fosse sullo stesso dominio e funziona con i browser più recenti (Internet Explorer 8+, Firefox 3.5+, Safari 4+ e Chrome)!
Se avete bisogno di supporto del browser più vecchi, sono riuscito a far funzionare backbone usando easyXDM:
easyXDM è una libreria JavaScript che consente come sviluppatore di lavorare facilmente attorno alla limitazione messo in atto dalla stessa Origin Policy, a sua volta facilita la comunicazione ed esporre le API javascript ai confini del dominio.
È un po 'più complicato e funziona con alcuni hack iframe ben noti (che a volte vengono utilizzati in widget javascript come GMaps, widget di Facebook, ...).
Spero che questo aiuto!
CORS non funziona se utilizzato da un file: // url però. – sunkencity
In base a [questo collegamento da microsoft] (http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx), il supporto CORS è limitato in IE8/9, e non usa XMLHttpRequest, usa l'oggetto XDomainRequest.Alcuni punti salienti (in basso): possono utilizzare solo GET/POST, nessuna intestazione personalizzata, richieste tipo di contenuto sarà sempre text/plain, non può inviare cookie di autenticazione con richiesta, devono essere entrambi sullo stesso schema http (ad esempio http e http o https & https), –