⊗jsSpAXCP 258 of 294 menu

CORS-Richtlinie in AJAX-Anfragen in JavaScript

Über AJAX kann man nicht einfach so Anfragen an andere Websites stellen (cross-origin requests). Solche Anfragen unterliegen der Richtlinie CORS. Kurz gesagt, nach dieser Richtlinie muss die Website, an die Sie die Anfrage richten, einwilligen, diese zu beantworten. Dazu muss sie entsprechende HTTP-Header senden.

Lassen Sie es uns praktisch ausprobieren. Starten wir zwei Testserver auf verschiedenen Ports. Den ersten auf 3001 und den zweiten auf 3002. Versuchen wir, eine AJAX-Anfrage von der zweiten Website an die erste zu senden.

Nehmen wir an, die erste Website ist bereit, folgende Anfragen entgegenzunehmen:

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

Senden wir von der zweiten Website eine Anfrage an die erste:

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

Infolgedessen wird die Anfrage nicht ausgeführt, und in der Browserkonsole sehen wir einen Fehler, der mit der CORS-Richtlinie zusammenhängt.

Damit die Anfrage ausgeführt wird, muss der erste Server spezielle HTTP-Header senden. Geben wir diese an - und die Anfrage von der zweiten Website wird beginnt, an die erste durchzugehen:

export default { '/handler/': function({ body, resp }) { resp.setHeader('Access-Control-Allow-Origin', '*'); resp.setHeader('Access-Control-Allow-Headers', '*'); console.log(body); return 'success'; } }
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen