Traefik not setting Access-Control-Allow-Origin header

Hey,

I am trying to have traefik set the Access-Control-Allow-Origin header to http://localhost:8080. I'm using the following docker labels:

- "traefik.http.middlewares.cors.headers.accessControlAllowOriginList=http://localhost:8080"
- "traefik.http.routers.myrouter.middlewares=cors"

But I still get a CORS error because the header is not present. However, if I set the value of accessControlAllowOriginList to * the header is present.

Am I missing something obvious as to why traefik is not setting the header when trying to set it to a value other than *?

1 Like

Hey @Steffeeen,

I have had the same issue (traefik v2.9). Although I haven't found the solution for the accessControlAllowOriginList option, I ended up setting the Access-Control-Allow-Origin header explicitly using the customResponseHeaders configuration option.

In your case, it would be:

- "traefik.http.middlewares.cors.headers.customResponseHeaders.Access-Control-Allow-Origin=http://localhost:8080"
- "traefik.http.routers.myrouter.middlewares=cors"

Hope it helps.

1 Like

Following traefik documentation I've added a custom header like this as middleware -

- traefik.http.middlewares.custom-header-name-here.headers.accesscontrolallowmethods=GET,OPTIONS,PUT
- traefik.http.middlewares.custom-header-name-here.headers.accesscontrolallowheaders=*
- traefik.http.middlewares.custom-header-name-here.headers.accesscontrolalloworiginlist=*
- traefik.http.middlewares.custom-header-name-here.headers.accesscontrolmaxage=100
- traefik.http.middlewares.custom-header-name-here.headers.addvaryheader=true

then you have to point the middleware in your routes -

- traefik.http.routers.your-service-name.middlewares=custom-header-name-here