Begrip: CORS Preflight Requests
Als een HTTP Request een side-effect heeft, i.e. als er data aangepast wordt op de server (PUT, DELETE, POST (in sommige gevallen)), wordt een preflight request uitgevoerd.
De browser voert een preflight request uit voordat het echte request verstuurd wordt. Voor dit preflight request wordt de HTTP OPTIONS methode gebruikt. Afhankelijk van de het antwoord dat de browser krijgt op het preflight request, wordt het PUT of DELETE request al dan niet uitgevoerd.
Een preflight request moet twee headers teruggeven, de eerste header Access-Control-Allow-Origin wordt ook gebruikt voor GET en POST requests. De tweede header is Access-Control-Allow-Methods, hiermee wordt aangegeven welke HTTP-methodes toegestaan zijn voor een bepaald endpoint.
Naast deze twee verplichte headers zijn er ook verschillende optionele:
- Access-Control-Allow-Headers: De headers die toegestaan zijn in het PUT, DELETE of POST request.
- Access-Control-Allow-Credentials: Of credentials ( cookies of de Authorization header) toegestaan zijn.
- Access-Control-Expose-Headers: De headers die door de client uitgelezen mogen worden.
- Access-Control-Max-Age: Geeft aan hoeveel seconden het resultaat van een preflight request bewaard mag worden door de browser.