Hoppa till innehållet

Cross-Origin Resource Sharing

CORS styr webbläsarens åtkomst till svar från en annan origin. Det ersätter varken API-inloggning eller behörighetskontroll.

Även känt somCORS
API:er och datakontrakt

Låt en annan origin läsa svar

Cross-Origin Resource Sharing, förkortat CORS, är en mekanism med HTTP-rubriker. Servern anger från vilka andra origins webbläsarkod får åtkomst till dess svar. En origin omfattar protokoll, värd och port. Webbläsaren tillämpar regeln; CORS är ingen API-inloggning.

Skilj på portal och API

En fiktiv portal på https://portal.example vill läsa projektdata från https://api.example/projects. API:t kan tillåta portalens origin med Access-Control-Allow-Origin. Beroende på metod och rubriker frågar webbläsaren först med OPTIONS om det faktiska anropet är tillåtet. Förkontrollen kallas preflight och sker inte vid varje anrop.

Vid andra anrop kan förfrågan redan nå servern, även om webbläsaren sedan inte ger skriptet tillgång till svaret. Ett CORS-fel bevisar därför inte att ingenting har hänt på servern.

Om sessionskakor ska skickas med måste även inställningarna för autentiseringsuppgifter stämma. Sådana svar kräver en uttrycklig origin i stället för jokertecknet *; även Access-Control-Allow-Credentials är relevant. Webbläsarens regler för kakor gäller fortfarande. Oberoende av detta kontrollerar API:t identitet och rättigheter för begärda projektdata.

Källor