Wat is CORS (cross-origin resource sharing)?
Een mechanisme dat verzoeken naar andere origins, en het lezen van de antwoorden daarop, die door de same-origin policy worden beperkt, toestaat binnen de grenzen die de server toelaat. De server geeft met antwoordheaders zoals Access-Control-Allow-Origin aan welke origins het antwoord mogen lezen. Voor verzoeken die een eenvoudig verzonden formulier niet kan maken, zoals een POST met Content-Type: application/json, stuurt de browser eerst een controle met de methode OPTIONS (een preflight). Het is een regel die de browser handhaaft, geen mechanisme dat de server tegen aanvallen beschermt.
Japanse benaming: CORS(オリジン間リソース共有)
“CORS (cross-origin resource sharing)” komt voor in 1 oefenvragen uit 1 onderwerpen, bijv. Basis van webtechnologie.
Vakgebied: Basis van webtechnologie
Eenvoudige verzoeken en preflights
GET-verzoeken en POST-verzoeken in formaten die een formulier kan verzenden (application/x-www-form-urlencoded, multipart/form-data, text/plain) worden zonder controle verzonden, en Access-Control-Allow-Origin bepaalt alleen of het script het antwoord mag lezen. Bij verzoeken met andere methoden of Content-Types, of met eigen headers, stuurt de browser eerst OPTIONS en geeft hij in headers zoals Access-Control-Request-Method de methode en de headers op die hij zal gebruiken. Geeft de server toestemming, dan verstuurt de browser het eigenlijke verzoek.
Veelgestelde vragen
Kan een CORS-fout aan de kant van de client worden opgelost?
Nee. De server bepaalt welke origins zijn antwoorden mogen lezen, dus de API-server moet de juiste toestemmingsheaders aan zijn antwoorden toevoegen. Bij een API die je niet zelf beheert, kun je die ook via je eigen server aanroepen.
Hoe hangen de same-origin policy en CORS samen?
De same-origin policy verbiedt in principe het lezen van antwoorden van andere origins, en CORS is het mechanisme om binnen de door de server expliciet opgegeven grenzen uitzonderingen toe te staan. Geeft de server geen CORS-toestemming terug, dan blijft de beperking van de same-origin policy gewoon gelden.