Opvragen ruimtelijke plannen geblokkeerd door CORS policy

Het opvragen van ruimtelijike plannen WFS API in de browser geeft een CORS melding. Dezelfde POST request in Postman lukt wel. Wat doen wij verkeerd? Wat is het CORS beleid van Ruimtelijkeplannen.nl? Welke headers moeten meegestuurd worden in de request?

Voorbeeld CORS melding bij het bevragen van ruimtelijkeplanen.nl:
Test URL: http://robinpiets.nl/amsterdam/

CORS melding:
Access to XMLHttpRequest at 'http://afnemers.ruimtelijkeplannen.nl/afnemers/services?REQUEST=GetCapabilities&typeName=PlanGebied&service=WFS&version=1.0.0' from origin 'http://robinpiets.nl' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Dag Chennard,

De WFS-aanroep is correct. Je geeft zelf ook al aan dat je in Postman wel correcte response krijgt. Waarschijnlijk zul je exact hetzelfde ervaren wanneer je op dezelfde wijze bv een service van PDOK wilt aanroepen. Zou je dit eens willen proberen? Ik ga in ieder geval even verder informeren naar eventuele CORS-settings.

Groeten, Merijn

2 likes

Postman controleert niet of er een Access-Control-Allow-Origin header in de response van een OPTIONS request zit, terwijl de meeste HTTP clients dit wel standaard doen.

Meeste preflight requests sturen Access-Control-Request-Headers, Access-Control-Request-Method, Origin headers mee en verwachten dan de corresponderende response headers in de response (Access-Control-Allow-Headers, Access-Control-Allow-Methods, Access-Control-Allow-Origin).

Meer info: Cross-Origin Resource Sharing (CORS) - HTTP | MDN

2 likes

Dank, ik ga proberen met een andere PDOK-service.

De policy is aangepast zodat er (als het goed is) enkel een waarschuwing wordt geplaatst. Deze zou je nu moeten kunnen gebruiken binnen je eigen domein.

2 likes

Dank :tada:, het werkt in ons ontwikkelomgeving. Morgen kan ik het op ons domein testen.

Mooi!

Het werkt!
Nogmaals mijn dank :slight_smile: !

1 like

Ha @MerijnKerlen

Een oude post, ik weet het, maar het lijkt weer (nog?) actueel. Als wij een WFS van ruimtelijkeplannen.nl bevragen vanuit onze webapplicatie krijgen we ook een CORS error. De response header die we nodig hebben zien we wel terugkomen, maar deze zit ‘verstopt’ in een andere header.

Als ik een willekeurige WFS van PDOK bevraag zit de benodigde header wel in de response zoals ik hem zou verwachten.

Zie de twee respectievelijke screenshots

Enig idee of dat aan te passen is aan jullie kant? Hoor het graag.

Groeten, Elmer (Geodan)

Ik mag als nieuwe gebruiker blijkbaar maar 1 afbeelding tegelijk posten zegt hij. Bij deze een poging om het tweede screenshot ook te posten.

Hoi Elmer,
Wij gaan dit controleren. Ik heb gelijk een vervolgvraag cq opmerking; maken jullie nog geen gebruik van onze API? Zie Ruimtelijke plannen opvragen - Ontwikkelaarsportaal
Deze biedt meer mogelijkheden en is ook toekomstbestendig. Overigens leggen wij momenteel de laatste hand aan APIv4. Gepland staat dat deze uiterlijk eind juni beschikbaar moet zijn. De WFS gaat binnen afzienbare tijd na inwerking treden Omgevingswet verdwijnen.
Groet, Merijn

Ha Merijn,

Dank voor je snelle reactie. Nee, die API gebruiken we nog niet. Deze specifieke WFS wordt gebruikt door een klant van ons. We zullen eens kijken of we voor hen ook uit de voeten kunnen met de API. Maar het zou ondertussen fijn zijn als jullie inderdaad naar die header willen kijken. Waarvoor dank.


Merijn, dit is een reactie op jouw bericht van 17 mei. Het is bizar, maar ik mag geen nieuwe antwoorden meer schrijven hier in dit draadje omdat ik een nieuwe gebruiker ben… Hopelijk lees je dit aangepaste bericht. Ik wou schrijven:

Ik kan zien dat er iets gewijzigd is (de verwachte header is nu aanwezig), alleen krijg ik nog steeds een CORS-melding in Chrome. Hij zegt nu ‘WildcardOriginNotAllowed’, zie screenshot. Verzoek naar jullie WFS werkt niet; verzoek naar WFS op PDOK wel. Ik heb zitten zoeken via Google, maar vind geen suggesties.

Goedemorgen Elmer,
Als het goed is werkt het sinds afgelopen vrijdag weer naar behoren. Wil je dit navragen bij jullie klant?