Naar de inhoud

Cross-Origin Resource Sharing

CORS regelt browsertoegang tot antwoorden van een andere origin. Het vervangt geen API-aanmelding of controle van toegangsrechten.

Ook bekend alsCORS
API's en datacontracten

Een andere origin antwoorden laten lezen

Cross-Origin Resource Sharing, of CORS, is een mechanisme met HTTP-headers. De server geeft aan vanaf welke andere origins browsercode zijn antwoorden mag benaderen. Een origin omvat protocol, host en poort. De browser handhaaft de regel; CORS is geen API-aanmelding.

Portaal en API onderscheiden

Een fictief portaal op https://portal.example wil projectgegevens lezen van https://api.example/projects. De API kan de portaal-origin toestaan met Access-Control-Allow-Origin. Afhankelijk van methode en headers vraagt de browser eerst met OPTIONS of de eigenlijke aanroep is toegestaan. Deze voorafgaande controle heet preflight en vindt niet bij iedere aanroep plaats.

Bij andere aanroepen kan het verzoek de server al bereiken, terwijl de browser het antwoord vervolgens niet aan het script vrijgeeft. Een CORS-fout bewijst dus niet dat op de server niets is gebeurd.

Moeten sessiecookies worden meegestuurd, dan moeten ook de instellingen voor toegangsgegevens overeenkomen. Zulke antwoorden vereisen een expliciete origin in plaats van het jokerteken *; ook Access-Control-Allow-Credentials is van belang. De cookieregels van de browser blijven gelden. Los daarvan controleert de API identiteit en rechten voor de gevraagde projectgegevens.

Bronnen