⊗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štinaDanskDeutschEnglishEspañ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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη