CORS Response headers missing
Hej.
SL Transport / sites-endpoint svarar inte alltid med CORS headers. Jag är inte säker men det kan vara så att det uppstår när Cloudfront returnerar en cachad response.
Ex:
https://transport.integration.sl.se/v1/sites?expand=true
Problemet kan reproduceras i er API-browser:
Detta blir naturligtvis problem när endpointen anropas från en webbapp.
/Karl
Följ inlägget
2
följare
Jag har skickat vidare frågan till SL, då detta tidigare har lagts till så det ska vara med.
Hälsningar,
Bert
Har ni fått något svar från SL?
Hälsningar,
Karl
Detta problem finns fortfarande, har ni någon ide om när det kommer att hanteras?
Hälsningar
/Jesper
Efter att en första felsökning hos SL inte löste problemet har ärendet skickats vidare till deras utvecklingsteam. Prognosen just nu är att det blir löst inom 1-2 veckor.
Hälsningar,
Bert
Problemet borde vara löst. Det är dock så att CORS-headern endast finns om webbläsaren skickar med följande två headers i anropet, vilket webbläsaren borde göra automatiskt:
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
Hälsningar,
Bert
Jag har provat och vad jag kan se är inte problemet löst, antingen det eller så är det något som jag inte begriper. Jag använder den senaste versionen av webläsaren Chrome på MacOs. Om jag anropar tex följande url: https://journeyplanner.integration.sl.se/v1/TravelplannerV3_1/trip.json?key=TRAFIKLAB-SLAPI-INTEGRATION-2024&originExtId=300103715&destExtId=300109001 direkt i webläsaren fungerar det utmärkt, allt enligt plan. Men om jag anropar samma url från en web-app så får jag CORS fel. Jag kan se att de ovan nämnda headers skickas med i anropet.
sec-fetch-mode: cors
sec-fetch-site: cross-site
Men i response-headers finns inte den cors header som behövs, dvs
access-control-allow-origin: *
saknas. Den response-headern finns med i de REST anrop som fungerar, dvs
https://transport.integration.sl.se/v1/sites/3715/departures anropet fungerar väl och har de response-headers som borde finnas.
Jag inser nu att den ursprungliga frågan rör SL Transport APIt, medan de problem jag har rör SL Route-planner v3.1 APIt. Hur fungerar detta API med CORS?
/Jesper
Jag har skickat vidare frågan angående SL Route planner 3.1. Det stämmer att headern aldrig finns med där just nu.
Vidare verifiering visades i övrigt att det inte är "sec-fetch-mode: cors" och "sec-fetch-site: cross-site" som styr CORS-headern, utan det är Origin headern som måste finnas med. Den headern finns också automatiskt med när man gör ett CORS-anrop från webbläsaren.
Hälsningar,
Bert
Tyvärr är problemet inte löst. Origin-headern skickas med i requesten men "access-control-allow-origin" saknas i responsen. Jag tror felet ligger i deras konfigurering av Cloudfront cachen.
Hälsningar,
Karl