Nginx 跨域

时间:2022-10-14 18:01:24

1:配置

在 nginx 配置文件的 server 节点增加如下片段代码:

  add_header X-Frame-Options SAMEORIGIN;
add_header 'Access-Control-Allow-Origin' '*';
add_header Content-Security-Policy "upgrade-insecure-requests;connect-src *";
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Requested-With';
add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS';

2:支持限制跨域的域名

  add_header 'Access-Control-Allow-Origin' '*';

这样的设置是支持所有域名跨域访问nginx

如果想对跨域访问的域名做限制,则需要做如下配置:

1:在server节点上增加如下代码,改代码片段和server 节点评级

map $http_origin $corsHost {
default 0;
"~https://www.baidu.com" https://www.baidu.com;
"~http://www.baidu.com" http://www.baidu.com;
}

这里一定要注意:

"~https://www.baidu.com" 最前面的是~ 不是-

2:配置 server 节点中的 Access-Control-Allow-Origin

add_header 'Access-Control-Allow-Origin' $corsHost;