⊗jsSpAXCP 258 of 294 menu

CORS poliitika AJAX päringutes JavaScriptis

AJAX-i kaudu ei saa lihtsalt teha päringuid teistele veebisaidile (cross-origin requests). Selliseid päringuid reguleerib CORS poliitika. Lühidalt, selle poliitika kohaselt peab sait, millele te päringu suunate, nõustuma sellele vastamisega. Selleks peab ta andma vastavad HTTP päised.

Proovime seda praktikas. Käivitame kaks testserverit erinevatel portidel. Esimene portil 3001 ja teine portil 3002. Proovime saata AJAX päringu teiselt saidilt esimesele.

Olgu esimene sait valmis vastu võtma järgmisi päringuid:

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

Saadame teiselt saidilt päringu esimesele:

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', }, }); });

Tulemusena päring ei täitu ja brauseri konsoolis näeme viga, seotud CORS poliitikaga.

Et päring täituks, peab esimene server andma spetsiaalsed HTTP päised. Määrame need - ja päring teiselt saidilt hakkab esimesele jõudma:

export default { '/handler/': function({ body, resp }) { resp.setHeader('Access-Control-Allow-Origin', '*'); resp.setHeader('Access-Control-Allow-Headers', '*'); console.log(body); return 'success'; } }
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu