NGINX:add_header GET 不工作

NGINX: add_header for GET not working

以下(简化的)NGINX 配置导致 OPTIONS 调用正确获取 return 中的 Access-Control-Allow-Origin header headers,但 GET 不是:

location / {
    if ($request_method = OPTIONS ) {
        add_header 'Access-Control-Allow-Origin' '$http_origin' always;
        return 204;
    }
    add_header 'Access-Control-Allow-Origin' '$http_origin' always;
    try_files $uri @proxy_to_app;
}

location @proxy_to_app {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://app_server;
}

我已经尝试了 location 块中的所有组合,但没有任何效果,我能想到的唯一可行的解​​决方案是将此行移动到 location @proxy_to_app 部分:

    add_header 'Access-Control-Allow-Origin' '$http_origin' always;

好像 proxy_to_app 块正在再次删除添加的 headers。

正如 Alexey Ten 所说,我将 add_header 移动到位置 @proxy_to_app