⊗jsSpAXCP 258 of 294 menu

CORS-ի քաղաքականությունը AJAX հարցումներում JavaScript-ում

Չի կարելի ուղղակիորեն AJAX-ի միջոցով հարցումներ կատարել այլ կայքերին (cross-origin requests): Նման հարցումները կարգավորվում են CORS քաղաքականությամբ: Հակիրճ ասած, այս քաղաքականության համաձայն՝ այն կայքը, որին դուք ուղղում եք հարցումը, պետք է համաձայնի դրան պատասխանել: Դրա համար այն պետք է տրամադրի համապատասխան HTTP վերնագրեր:

Եկեք փորձենք գործնականում: Գործարկենք երկու փորձնական սերվեր տարբեր պորտերում: Առաջինը 3001 պորտում, իսկ երկրորդը՝ 3002 պորտում: Փորձենք երկրորդ կայքից ուղարկել AJAX հարցում առաջին կայքին:

Թող առաջին կայքը պատրաստ լինի ընդունել հետևյալ հարցումները.

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

Երկրորդ կայքից ուղարկենք հարցում առաջինին.

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

Արդյունքում հարցումը չի կատարվի, իսկ բրաուզերի կոնսոլում մենք կտեսնենք սխալ, որը կապված է CORS քաղաքականության հետ:

Որպեսզի հարցումը կատարվի, առաջին սերվերը պետք է տրամադրի հատուկ HTTP վերնագրեր: Եկեք նշենք դրանք, և երկրորդ կայքից հարցումը կսկսի անցնել առաջինին.

export default { '/handler/': function({ body, resp }) { resp.setHeader('Access-Control-Allow-Origin', '*'); resp.setHeader('Access-Control-Allow-Headers', '*'); console.log(body); return 'success'; } }
Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել