⊗jsSpAXCP 258 of 294 menu

Politique CORS dans les requêtes AJAX en JavaScript

Il n'est pas possible de faire simplement des requêtes vers d'autres sites via AJAX (cross-origin requests). De telles requêtes sont régies par la politique CORS. En bref, selon cette politique, le site vers lequel vous envoyez la requête doit accepter d'y répondre. Pour cela, il doit renvoyer les en-têtes HTTP appropriés.

Essayons pratiquement. Lançons deux serveurs de test sur des ports différents. Le premier sur 3001, et le second sur 3002. Essayons d'envoyer une requête AJAX du second site vers le premier.

Supposons que le premier site est prêt à recevoir les requêtes suivantes :

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

Envoyons une requête du second site vers le premier :

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

En conséquence, la requête ne s'exécutera pas, et dans la console du navigateur nous verrons une erreur, liée à la politique CORS.

Pour que la requête s'exécute, le premier serveur doit renvoyer des en-têtes HTTP spécifiques. Spécifions-les - et la requête du second site commencera à passer vers le premier :

export default { '/handler/': function({ body, resp }) { resp.setHeader('Access-Control-Allow-Origin', '*'); resp.setHeader('Access-Control-Allow-Headers', '*'); console.log(body); return 'success'; } }
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser