⊗jsSpAXCP 258 of 294 menu

Politica CORS nelle richieste AJAX in JavaScript

Con AJAX non è possibile effettuare semplicemente richieste ad altri siti (cross-origin requests). Tali richieste sono regolate dalla politica CORS. In breve, secondo questa politica, il sito a cui si indirizza la richiesta deve acconsentire a rispondere. Per fare ciò, deve restituire le opportune intestazioni HTTP.

Proviamo nella pratica. Avviamo due server di test su porte diverse. Il primo sulla 3001, e il secondo sulla 3002. Proviamo a inviare una richiesta AJAX dal secondo sito al primo.

Supponiamo che il primo sito sia pronto a ricevere le seguenti richieste:

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

Inviiamo dal secondo sito una richiesta al primo:

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

Di conseguenza, la richiesta non verrà eseguita, e nella console del browser vedremo un errore legato alla politica CORS.

Affinché la richiesta venga eseguita, il primo server deve restituire speciali intestazioni HTTP. Specifichiamole - e la richiesta dal secondo sito inizierà a raggiungere il primo:

export default { '/handler/': function({ body, resp }) { resp.setHeader('Access-Control-Allow-Origin', '*'); resp.setHeader('Access-Control-Allow-Headers', '*'); console.log(body); return 'success'; } }
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta