⊗jsSpAXCP 258 of 294 menu

CORS-politikk i AJAX-forespørsler i JavaScript

Via AJAX kan du ikke bare gjøre forespørsler til andre nettsteder (cross-origin requests). Slike forespørsler reguleres av politikken CORS. Kort fortalt, i henhold til denne politikken må nettstedet som du retter en forespørsel til, samtykke i å svare på den. For å gjøre dette må det levere de tilsvarende HTTP-headerne.

La oss prøve i praksis. La oss starte to testservere på forskjellige porter. Den første på 3001, og den andre på 3002. La oss prøve å sende en AJAX-forespørsel fra det andre nettstedet til det første.

La det første nettstedet være klart til å motta følgende forespørsler:

export default { '/handler/': function({ body }) { console.log(body); return 'success'; } }

La oss sende en forespørsel fra det andre nettstedet til det første:

button.addEventListener('click', function() { let promise = fetch('http://localhost:3001/handler/', { method: 'post', body: JSON.stringify([1, 2, 3, 4, 5]), headers: { 'Content-Type': 'application/json', }, }); });

Som et resultat vil ikke forespørselen bli utført, og i nettleserens konsoll vil vi se en feil, relatert til CORS-politikken.

For at forespørselen skal bli utført, må den første serveren levere spesielle HTTP-headere. La oss spesifisere dem - og forespørselen fra det andre nettstedet vil begynne å gå til det første:

export default { '/handler/': function({ body, resp }) { resp.setHeader('Access-Control-Allow-Origin', '*'); resp.setHeader('Access-Control-Allow-Headers', '*'); console.log(body); return 'success'; } }
Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis