Un'applicazione a singola pagina rompe naturalmente la stessa politica di origine?

1

Supponiamo che tu abbia un'applicazione web. L'API di back-end è distribuita a api.example.com e il tuo front-end SPA è distribuito a frontend.example.com . Quando lo apri, scarichi tutte le risorse sul tuo browser. L'origine è frontend.example.com , ma quando invii richieste al back-end vengono effettivamente inviati a api.example.com che non è la stessa origine.

Quindi una SPA rompe naturalmente la politica della stessa origine poiché nella maggior parte dei casi l'API contro cui lavora non è l'origine su cui si basa. Quindi la mia domanda è: esiste un modo per sviluppare una SPA senza infrangere la politica della stessa origine, e senza utilizzare alcune tecniche complicate come CORS o JSONP?

    
posta Qingbao 30.08.2017 - 10:03
fonte

2 risposte

2

Se vuoi evitare di fare richieste di origine incrociata, ospita il tuo frontend e la tua API sulla stessa origine. Se li ospitali su origini diverse, per definizione devi effettuare richieste di origine incrociata.

E se devi fare richieste di origine incrociata, usa solo CORS. JSONP è un brutto scherzo che dovrebbe essere evitato. È stato utilizzato nel corso della giornata in situazioni come questa, perché all'epoca non c'erano CORS. Quindi CORS è stato sviluppato per affrontare esattamente il tipo di situazione che descrivi.

Quindi chiedere come creare richieste di cross-like senza CORS è come chiedere come colpire un chiodo senza un martello. Usa semplicemente il martello, ecco a cosa serve!

    
risposta data 29.10.2017 - 12:42
fonte
0

Se interrompi la stessa politica di origine, la tua app non funzionerebbe affatto. I browser sono molto rigidi, non ti lasceranno infrangere questa regola.

Ho scritto un post breve sulla stessa politica di origine. Aiuterà a mettere l'intera idea in prospettiva.

So my question is, is there a way to develop a SPA without breaking the same-origin policy, and without using some tricky tech like CORS or JSONP?

Certo! Se pubblichi la pagina iniziale della SPA dal dominio su cui hai ospitato il tuo back-end, non hai bisogno che CORS o JSONP comunichino con il tuo back-end.

    
risposta data 30.08.2017 - 10:32
fonte

Leggi altre domande sui tag