Cross-Domain Requests JSONP vs CORS

Proprio poco fa mi sono imbattuto (facendo un test) in un caso in cui non posso fare un POST JSON con jQuery a causa di una Cross-Domain Requests.

Avevo gia avuto in precedenza questo problema con le richieste cross-domain JSON con jQuery ma utilizzanto JSONP avevo risolto questo tipo di problema.
Apprendo solo ora che non e' possibile usare la stessa tecnica per i POST in quanto JSONP va bene solo per gli http GET, esiste invece Cross-origin resource sharing (CORS):

http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing

Ho trovato che Apache CXF e' possibile annotare direttamente la classe con @CrossOriginResourceSharing
http://cxf.apache.org/docs/jax-rs-cors.html

Al momento con JAX-RS non sono ancora riuscito a superare il problema.
Per applicare gli header necessari con JAX-RS ho scritto questo filtro:
https://github.com/mattocchi/WebAppCommon/blob/master/src/it/attocchi/rest/RestAccessControlFilter.java

Quando l'applicazione e' dentro PhoneGap nessun problema, il problema si presenta solo testando direttamente via Browser (nel caso di Chrome si può usare chrome --disable-web-security )

Commenti

Anonimo ha detto…
Ciao Mirco cercando una soluzione al mio problema mi sono imbattuta nel tuo blog! Ho proprio un problema di cross domain per un' app sviluppata con android e phonegap...tu come sei riuscito a risolvere il problema?
Grazie Valentina

Post popolari in questo blog

Eclipse underscore not visible

Batch Convert CSV to XLSX with LibreOffice (OpenOffice)