I am trying to send multiple headers
add_header Access-Control-Allow-Origin http://dev.anuary.com;
add_header Access-Control-Allow-Origin https://dev.anuary.com;
However, instead NGINX makes them into
Access-Control-Allow-Origin: http://dev.anuary.com, https://dev.anuary.com
What's the solution?
Well, yes, nginx is combining the identically named headers.. but it's doing so in accordance with the HTTP spec. See section 4.2.
The header:
Is, according to the HTTP/1.1 spec, functionally equivalent to:
If you have a system or application that is capable of reading one format and not the other, then it's the problem. nginx is doing it right.
EDIT:
The Mozilla documentation states that there can only be one
Access-Control-Allow-Origin
header.The formatting of it (see here) should be a space-delimited list of origins:
But really, you're supposed to be echoing the
Origin
header supplied by the client instead of generating one out of the blue. This is probably more appropriate:I was facing the same issue as multiple sub domains in my network trying to access resources and
nginx
was not setup properly. Here is how I fixed it.I hope this helps.