Suositut työkalut ja menetelmät lähtötilanteiden välisten pyyntöjen simuloimiseksi paikallisissa kehitysympäristöissä pyörivät ensisijaisesti peräisin olevien resurssien jakamisen (CORS) rajoitusten käsittelemistä ja ohittamista koskevista käsittelyistä ja ohittamisesta. Nämä työkalut auttavat kehittäjiä testaamaan ja virheenkorjaamaan ulkomaalaisia vuorovaikutuksia joko mahdollistaa CORS: n paikallisilla palvelimilla, välityspalvelimilla tai hyödyntämällä selaimen laajennuksia ja kokoonpanoja. Alla on yksityiskohtainen tietoa joistakin yleisistä lähestymistapoista ja työkaluista, joita käytetään tähän tarkoitukseen.
CORS: n ymmärtäminen
Alkeisresurssien jakaminen (CORS) on suojausmekanismi, joka on toteutettu selaimissa, jotka rajoittavat yhtä alkuperän (verkkotunnus, protokolla, portti) toimivia verkkosovelluksia pääsemästä resursseista eri alkuperästä, ellei palvelin nimenomaisesti salli sen tietyn HTTP-otsikoiden kautta. CORS työskentelee palvelimien lähettämällä, jotka lähettävät takaisin otsikoita, kuten "pääsyn hallinta-oblic-origin" osoittaakseen, mitkä verkkotunnukset saavat käyttää resursseja. Selaimet valvovat tätä lähettämällä "ennakkoluulo" pyynnön (HTTP-optiopyyntö) tietyntyyppisille alkuperästen puheluille tarkistaaksesi käyttöoikeudet ennen todellisen pyynnön tekemistä. CORS -otsikot hallitsevat paitsi mitä alkuperää on sallittu, myös sitä, mitä HTTP -menetelmiä ja otsikoita voidaan käyttää, ja voidaanko evästeiden kaltaisia käyttöoikeustietoja lähettää.
paikalliset kehityshaasteet
Paikallisen kehityksen aikana projektit toimivat usein eri localhost-satamilla tai verkkotunnuksilla, jotka lasketaan erilaisiksi alkuperiksi ja laukaiseviksi CORS-rajoituksiksi, mikä vaikeuttaa lähtötilanteita. Kehittäjät tarvitsevat työkaluja tai kokoonpanoja, jotka simuloivat tai ohittavat nämä rajoitukset paikallisesti, jotta niiden käyttöliittymä ja takaosat voivat kommunikoida oikein vaikuttamatta tuotantoympäristöihin.
työkalut ja menetelmät Corsin simuloimiseksi tai ohittamiseksi paikallisesti
1. Paikallinen palvelimen välitys
Välitys on yksi vankeimmista ja laajalti käytetyistä ratkaisuista. Siihen sisältyy välityspalvelimen suorittaminen, joka toimii välittäjänä asiakkaan ja API-palvelimen välillä, reitittää tehokkaasti lähtötilojen pyyntöjä saman alkuperän kautta CORS-ongelmien välttämiseksi.
-Kehityspalvelimet, joissa on sisäänrakennettu välityspalvelintuki: Monet käyttöliittymätyökalut, kuten Vite, Webpack Dev Server tai luo React-sovellustuki välityspalvelimen määrittäminen. Luo esimerkiksi React -sovellus antaa kehittäjille mahdollisuuden määritellä välityspalvelimen `package.json` tai` SetepProxy.js` -sovelluksessa, joka välittää sovellusliittymän toiseen palvelimeen, joka toimii toisella portilla tai verkkotunnuksella. Tällä tavoin selain luulee sen olevan yhteydessä samaan alkuperään, koska pyynnöt esitetään itse DEV -palvelimelle, joka sitten välittää ne kohde -API -palvelimelle.
-Itsenlliset välityspalvelimet: Työkalut, kuten HTTP-Proxy-Middleware (Node.js) tai paikallisille koneille määritettyjen NGINX-välityspalvelimien, kuten Nginx, voi toimia välityspalvelimina pyyntöjen reitittämiseksi ja tarvittavien CORS-otsikoiden reitille ja lisätä. Kehittäjät voivat määrittää nämä palvelimet muuttamaan vastauksia lennossa sisällyttämään "pääsyn hallinta-oblic-origin: *` tai muut asianmukaiset otsikot.
2. Cors-yhteensopiva paikalliset sovellusliittymät
CORS: n tukevan sovellusliittymän paikallisen esimerkin suorittaminen on toinen tehokas lähestymistapa. Käyttämällä Docker- tai paikallisia asennuksia kehittäjät suorittavat sovellusliittymän koneissaan, joiden CORS on mahdollista kehitystilassa, jonka avulla Localhostissa toimivan käyttöliittymä voi kommunikoida vapaasti ilman rajoituksia. Tällä on täydellisen hallinnan etuja eikä riippuvuutta ulkoisista ympäristöistä.
3. Selaimen laajennukset kehitykseen
Nopea testausta tai virheenkorjausta varten monet kehittäjät käyttävät selaimen laajennuksia, jotka poistavat tai muokkaavat CORS -käyttäytymistä selaimissa väliaikaisesti. Näitä työkaluja tulisi käyttää vain kehityksessä, ei koskaan tuotannossa:
- Cors irrottaa Chrome: Tämä laajennus muuttaa pyynnön otsikoita ja mahdollistaa alkuperän pyynnöt pistämällä tarvittavat otsikot vastauksiin ohittaa selaimen Cors-täytäntöönpano.
- CORS Firefoxille: Samankaltainen kuin Chromen laajennus, se vaihtaa Cors-rajoituksia päälle ja pois päältä, jolloin kehittäjät voivat testata lähtökohtaisia puheluita muuttamatta palvelinkokoonpanoja.
- Safarin kehitysvalikko: Safari mahdollistaa väliaikaisesti käytöstä potilaiden potilaiden rajojen käytöstä valikon kautta, joka on hyödyllinen Mac-käyttäjille, jotka tekevät paikallista testausta.
4. paikallisen verkkopalvelimen käyttäminen tiedostojen avaamisen sijasta
Yksi CORS -virheiden perimmäinen syy on tiedostojen lataaminen suoraan ` -tiedostoon: //` selainten protokolla. Monet opetusohjelmat ja kysymykset ja vastaukset huomauttavat, että HTML -sivujen avaaminen suoraan ilman verkkopalvelin laukaisee CORS -virheitä, koska selaimet estävät monia tietoturvatoimintoja. Siten minimaalisen paikallisen HTTP-palvelimen suorittaminen työkaluilla, kuten Pythonin sisäänrakennettu HTTP-palvelin (`python3 -m http.server`), solmun" http-server` -paketti tai live-palvelin sallii oikean localhost-alkuperän ja välttää nämä virheet.
5. Palvelimen vastausotsikoiden muokkaaminen
Kun kehitetään omaa sovellusliittymää tai taustapalvelua, CORS -otsikkojen lisääminen tehdään yleensä sisällyttämällä väliohjelmisto tai Web -palvelimen määrittäminen CORS: n tukemiseksi. Suositut taustakehykset ja kielet ovat vakiinnuttaneet tapoja mahdollistaa Cors:
- Node.js/Express: "Cors" -käyttöpaketin käyttäminen yksinkertaistaa CORS -otsikkojen lisäämistä.
- ASP.NET Web -sovellusliittymä: Tukee määritteitä, kuten `[EnableCors]`, jotka sallivat alkuperän, menetelmien ja otsikoiden määrittämisen, jotka sallitaan alkuperän pyyntöihin.
-Django: Väliohjelmia, kuten `Django-Cors-otsikoita, käytetään Cors-tuen sallimiseen paikallisesti.
6. CORS: n ohittaminen julkisilla tai kolmansilla osapuolilla
Jotkut online -palvelut, kuten Beeceptor, antavat kehittäjille mahdollisuuden testata sovellusliittymiä ja ohittaa CORS: n reitittämällä pyynnöt välityspalvelimiensa kautta. Nämä palvelut lisäävät asianmukaiset CORS -otsikot, joten selaimet hyväksyvät vastaukset. Tämä lähestymistapa on hyödyllinen nopeaan virheenkorjaukseen, kun paikallinen asennus ei ole mahdollista, mutta sitä tulisi käyttää varovaisesti eikä tuotantoympäristöissä.
***
Yhteenveto suosituista työkaluista ja tekniikoista
- DEV -palvelimen välityspalvelin: välityspalvelimen ominaisuuksien käyttäminen työkaluissa, kuten Vite, Luo react -sovellus, Webpack Dev Server.
-Paikalliset välityspalvelimet: HTTP-Proxy-Middleware Node.js, Nginx, joka on määritetty välityspalvelimeksi.
- Paikallinen sovellusliittymä, jonka CORS on käytössä: Docker -säilöjen tai paikallisten sovellusliittymien esiintymien suorittaminen, joka on määritetty CORS: n avulla.
- Selaimen laajennukset: CORS UNBOCK (Chrome), Cors kaikkialla (Firefox), Safarin poistaminen ristikkäin peräisin olevat rajoitukset.
-Paikallinen HTTP-palvelin: Pythonin `http.server`, solmun" http-server` tai live-palvelin suorittaminen sen sijaan, että käyttäisit tiedostoa: // `URLS.
-Taustakehys Middleware: `Cors` -paketti Node.js,` [EnableCors] `ASP.NET Web -sovellusliittymässä` Django-Cors-otsikot` Djangolle.
- Kolmansien osapuolien välityspalvelimet: Beeceptor ja vastaavat palvelut väliaikaisesti ohittaa Cors.