Gå til indholdet

Cross-Origin Resource Sharing

CORS styrer browserens adgang til svar fra en anden origin. Det erstatter hverken login til API’et eller kontrol af rettigheder.

Også kendt somCORS
API'er og datakontrakter

Lad en anden origin læse svar

Cross-Origin Resource Sharing, forkortet CORS, er en mekanisme med HTTP-headere. Serveren angiver, fra hvilke andre origins browserkode må få adgang til dens svar. En origin omfatter protokol, vært og port. Browseren håndhæver reglen; CORS er ikke et login til API’et.

Skeln mellem portal og API

En fiktiv portal på https://portal.example vil læse projektdata fra https://api.example/projects. API’et kan tillade portalens origin med Access-Control-Allow-Origin. Afhængigt af metode og headere spørger browseren først med OPTIONS, om selve kaldet er tilladt. Denne forhåndskontrol hedder preflight; den sker ikke ved alle kald.

Ved andre kald kan anmodningen allerede nå serveren, selv om browseren bagefter ikke giver scriptet adgang til svaret. En CORS-fejl beviser derfor ikke, at der ikke er sket noget på serveren.

Skal sessionscookies sendes med, skal indstillingerne for legitimationsoplysninger også passe sammen. Sådanne svar kræver en udtrykkelig origin frem for jokertegnet *; Access-Control-Allow-Credentials er også relevant. Browserens cookieregler gælder stadig. Uafhængigt af dette kontrollerer API’et identitet og rettigheder til de ønskede projektdata.

Kilder