Tente adicionar "sempre" à diretiva add_header:
If the always parameter is specified (1.7.5), the header field will be added regardless of the response code.
Veja a documentação para obter mais detalhes.
Para o seu exemplo, seria assim:
location /api/get-hloc {
#add acccess-allow headers
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type' always;
#try cached files
root /dev/shm/get-hloc/;
try_files /$arg_hash.hloc /stocks/graphics/get-iis-graphic?$args;
}
Fique de olho no seguinte parágrafo da documentação:
There could be several add_header directives. These directives are inherited from the previous level if and only if there are no add_header directives defined on the current level.
Isso significa que, se você tiver diretivas add_header em um nível anterior (por exemplo, nível de servidor), elas serão ignoradas e somente as diretivas add_header dos níveis de local atual serão usadas.