⊗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हिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць