Aunque esto se preguntó hace mucho tiempo, estaba compilando nginx con más módulos, pero con la versión más nueva de nginx, descubrí que no tenía que compilar nginx a medida, todo lo que necesitaba era agregar una always
directiva.
http://nginx.org/en/docs/http/ngx_http_headers_module.html
Syntax: add_header name value [always];
Si se especifica el parámetro always (1.7.5), el campo de encabezado se agregará independientemente del código de respuesta.
Entonces, una versión sintonizada de los encabezados CORS :
if ($cors = "trueget") {
# Tells the browser this origin may make cross-origin requests
# (Here, we echo the requesting origin, which matched the whitelist.)
add_header 'Access-Control-Allow-Origin' "$http_origin" always;
# Tells the browser it may show the response, when XmlHttpRequest.withCredentials=true.
add_header 'Access-Control-Allow-Credentials' 'true' always;
}
always
Fue la clave. ¡Gracias por señalarme esto, me estaba volviendo loco!