以下(简化的)NGINX配置导致OPTIONS调用正确获取Access-Control-Allow-Origin标头,但不是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
块再次删除添加的标题一样。
答案 0 :(得分:0)
正如Alexey Ten所述,我已将add_header
移至@proxy_to_app