⊗jsSpAXCP 258 of 294 menu

CORS politika AJAX pieprasījumos JavaScript

Izmantojot AJAX, nevar vienkārši veikt pieprasījumus uz citām vietnēm (cross-origin requests). Šādus pieprasījumus regulē CORS politika. Īsumā, saskaņā ar šo politiku, vietne, uz kuru jūs virzāt pieprasījumu, ir jāpiekrīt uz to atbildēt. Lai to izdarītu, tai jānodod atbilstošas HTTP galvenes.

Izmēģināsim praksē. Palaist divus testa serverus dažādos portos. Pirmo uz 3001, bet otro uz 3002. Mēģināsim nosūtīt AJAX pieprasījumu no otrās vietnes uz pirmo.

Lai pirmā vietne ir gatava pieņemt šādus pieprasījumus:

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

Nosūtīsim no otrās vietnes pieprasījumu uz pirmo:

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

Rezultātā pieprasījums neizpildīsies, un pārlūka konsole mēs redzēsim kļūdu, kas saistīta ar CORS politiku.

Lai pieprasījums izpildītos, pirmajam serverim jānodod speciālas HTTP galvenes. Norādīsim tās - un pieprasījums no otrās vietnes sāks iet uz pirmo:

export default { '/handler/': function({ body, resp }) { resp.setHeader('Access-Control-Allow-Origin', '*'); resp.setHeader('Access-Control-Allow-Headers', '*'); console.log(body); return 'success'; } }
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt