Cors probleem bij WMTS images

Hallo,

Tijdens het werken aan ons Ovam project heb ik gemerkt dat we een probleem hebben met CORS tijdens het exporteren van een html canvas. We gebruiken in open layers een WMTS capabilities url https://tile.informatievlaanderen.be/ws/raadpleegdiensten/wmts/1.0.0/WMTSCapabilities.xml waarbij nadien images worden gedownload met url’s in dit formaat: https://tile.informatievlaanderen.be/ws/raadpleegdiensten/wmts/1.0.0/grb_bsk/default/BPL72VL/2/1/1.png .

Deze images hebben geen response header Access-Control-Allow-Origin: * waardoor de canvas gemarkeerd wordt als Tainted en je deze niet kan exporteren. De capabilities url bevat deze response header wel correct. Je kan dit eenvoudig testen door de url uit te proberen met een image tag:

Aangezien de resources gedeeld worden voor het publiek, zou het logisch zijn deze header aan te zetten. Kan dit voorzien worden aub?

Met vriendelijke groeten,
Jan

Beste Jan,

Ik heb dit bekeken, en CORS staat aan op de betreffende server.
Ik deed een test in Fiddler met de image url en kreeg onderstaande response headers.
Misschien ligt het probleem elders?

Met vriendelijke groeten

image

Zeer vreemd, ik zie iets anders. Bij het ophalen van de image rechtstreeks:

Gebruikt u dezelfde url? U zit niet toevallig in een ander netwerk?

Indien ik een img tag met crossorigin=“anonymous” gebruik in een html pagina die lokaal draait:

Ik probeerde met onderstaande html pagina

<html>
<p><img src="https://tile.informatievlaanderen.be/ws/raadpleegdiensten/wmts/1.0.0/grb_bsk/default/BPL72VL/2/1/1.png" crossorigin=“anonymous”  width="256" height="256"></p>
</html>

en verkreeg

Zeer vreemd, kan u deze link ook eens checken?

We onderzoeken dit verder en houden u op de hoogte via dit kanaal.

Hallo,

Ik heb nog eens doorgetest en heb het volgende gevonden:

CORS header lijkt correct te zijn gezet in de meeste gevallen. Geen idee waarom de CORS Tester faalt, maar we zien daar niet de request headers, dus mogelijks voegt deze geen Origin toe om de CORS request correct te maken.

Wel heb ik mijn probleem even teruggevonden en de reden waarom deze post is gemaakt. Op een bepaald moment heb ik lokaal getest met ip 127.0.0.1 in plaats van localhost. De origin header in de request werd correct gestuurd, maar de response had niet de allow-origin. Na wat testen werkte dit plots terug wel en kon ik dit probleem weer niet reproduceren… Een aantal flows geprobeerd (caching/geen caching/verschillende image opstellingen/wisselen localhost naar 127.0.0.1…), maar nu blijft het weer werken zoals verwacht.

Vermoedelijk heb ik hetzelfde voorgehad vorige week (ik zie bij mijn error hier in de posts ook dat ip staan als origin).

Ik ben er nog niet achter wat dit gedrag exact triggered, maar ik ga er van uit dat dit een lokaal probleem is en dat we gewoon verder kunnen. Mocht ik er achter komen welke exacte handelingen resulteren in dit probleem, laat ik zeker nog iets weten.

Alvast bedankt voor het meekijken.

Met vriendelijke groeten,
Jan

Een andere test kan uitgevoerd worden via https://www.test-cors.org/, Hier wordt wel een Origin Request Header meegegeven, zoals blijkt uit de inspectie van de request in de browser developer tool (F12).