Closed ThijsRay closed 1 year ago
Goede suggestie en bedankt voor de heldere uitleg. Het zou inderdaad handzamer zijn als er zonder tussenkomende server vanuit een browser direct met de API verbonden kan worden. Dit gaat we na een impact- en veiligheidsanalyse op de ontwikkelwensenlijst plaatsen. Op dit moment zijn we bezig de ontwikkelwensen van een prioritering te voorzien zodat we na een periode stabiel gedraaid te hebben ermee aan de slag kunnen.
We hebben dit uitgezocht met een impact- en veiligheidsanalyse. Dat blijkt helaas niet te kunnen. De oplossing blijft daarom dat verzoeken via de huidige manier gedaan moeten worden.
Het is momenteel niet mogelijk om de OData API aan te roepen op een ander domein dan https://gegevensmagazijn.tweedekamer.nl
Voorbeeld
Gegeven het volgende stukje Javascript
Dan laat de browser weten dat dit niet mogelijk
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://gegevensmagazijn.tweedekamer.nl/OData/v4/2.0/Document(7a9b77f1-d230-4a00-9856-2f0f8e967e62). (Reason: CORS request did not succeed). Status code: (null).
Oplossing
De volgende HTTP header kan worden toegevoegd aan de response van de OData API
Access-Control-Allow-Origin: *
Dit staat toe dat de browser vanuit elke website een verzoek aan https://gegevensmagazijn.tweedekamer.nl/OData/ mag doen. Dit maakt het mogelijk om applicaties te maken die direct gebruik maken van de OData API, zonder dat daar een extra back-end server tussen hoeft te staan.Meer informatie over CORS is te vinden op https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS