E' arrivata l'estate HOT! Sconti fino al 70% su tutti i corsi!
Davide Copelli WebSU

Debug APP in Chrome disabilitando la Cross Origin Policy

Articolo a cura di: Davide Copelli {ing}

Facebook

Quando si sviluppano app per dispositivi nativi o web app, il linguaggio principe che tutti sfruttano è sicuramente JavaScript nelle sue "varianti" che vanno da jQuery a Angular 4. Spesso queste applicazioni hanno la necessità di testare funzionalità che richiedono l'accesso alla rete via HTTP tramite XMLHttpRequest.

Tipico esempio, una pagina locale che richiede ad un server remoto, la quotazione in tempo reale di un titolo in borsa.

Se per le applicazioni sviluppate con l'appoggio di qualche framework come Cordova, per la fase di test e debug, si sfruttano emulatori integrati nei vari IDE di sviluppo (Android Studio o xCode), o estensioni quali Ripple, per applicazioni web che non richiedono particolari librerie se non quelle native dell'HTML5, spesso si usa direttamente il browser Chrome e le funzionalità integrate negli strumenti di  ispezione componente della pagina.

Ebbene il browser Chrome, così come altri browser, per ragioni di sicurezza, è impostato per non permettere a script inseriti in pagine web locali, di accedere a pagine web remote. In gergo tecnico si dice che solo due pagine nella stessa ORIGINE (Same Origin Policy), nel nostro caso in locale, posso comunicare tra di loro.

Con "origine" si intende una combinazione di un identificatore URI (es. http, https, file:// etc) seguita dal nome di un host ed eventualmente da un numero di porta. In questo modo si evita che uno script di origine sospetta, possa essere nascosto all'interno di una pagina web locale, scaricata o tramite email o dal web, e comunicare in modo truffaldino con una pagina web remota, inviando informazioni sensibili presenti nel nostro computer.

Questo sicuramente è un bene perchè ci protegge, dall'altra, rende la vita di tutti gli sviluppatori un pò più complessa, in quanto obbliga lo sviluppatore a testare le proprie applicazioni direttamente online in un proprio dominio. Tuttavia è possibile intervenire sulle impostazioni del browser per disabilitare, temporaneamente, questa sicurezza. Ripeto la parola momentaneamente, perchè ci si deve sempre ricordare di non navigare in rete in siti che non siano quelli strettamente necessari al test dell'applicazione.

Il procedimento è semplice, in quanto basta aprire il browser Chrome dalla finestra di comando, e lanciare l'applicazione facendo seguire una specifica stringa che varia a seconda del sistema operativo.

Per PC Windows: Chiudi il browser Chrome e poi apri la finestra dei comandi (quella dos per intenderci, per chi ha qualche capello bianco) e posizionati all'interno della cartella in cui è stato installato chrome. Se non riesci a trovare, clicca con il pulsante destro sopra l'icona di lancio del browser e accedi a Proprietà>Collegamenti.

Dopo digita, facendo attenzione agli spazi, la seguente scritta per lanciare il browser:

chrome.exe --disable-web-security

Per MAC: Chiudi il browser Chrome e apri la finestra terminale, inserendo la stringa:

$ open -a Google\ Chrome --args --disable-web-security

E' chiaro che non appena chiuderai nuovamente il browser, queste impostazioni verranno disattivate.

NB: Usa queste tecniche solo durante la fase di debug di un'applicazione in locale. Non navigare in rete, con questa opzione disabilitata.

Nel caso questa tecnica non funzionasse nelle attuali versioni di Chrome, esiste anche la comoda soluzione dell'installazione di "Estensione di Chrome" che permettono di ottenere lo stesso risultato. Una tra le tante è l'estensione "Cors Toggle"  e la puoi trovare all'interno dell'elenco estensioni disponibili per Chrome, oppure cliccando il link qui sotto.

Estensione Chrome: "Allow CORS"

WebStartUniversity
WebStartUniversity

Ricevi le anteprime dei nuovi corsi! Iscriviti Gratuitamente

Cliccando su Iscriviti, accetti le nostre condizioni d'uso e la politica sulla privacy

×