nginx跨域访问

location /dyl-server/ {
           if ($request_method = 'OPTIONS') {
              add_header Access-Control-Allow-Origin *;
              add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;  #允许的请求方式
              add_header Access-Control-Allow-Headers phone,Referer,Origin,X-Requested-With,Content-Type,Accept,Authorization,uToken,orgId,rootOrgId,token,uid,uName;  #允许的请求头,
              add_header Access-Control-Allow-Credentials true;
              add_header Access-Control-Request-Method X-Requested-With,Content-Type,Accept,Platform,Token,Authorization;
              add_header Access-Control-Max-Age 3601;
              return 200;
           }
              add_header Access-Control-Allow-Origin *;
              add_header Access-Control-Allow-Methods *;
              add_header Access-Control-Allow-Headers phone,Referer,Origin,X-Requested-With,Content-Type,Accept,Authorization,uToken,orgId,rootOrgId,token,uid,uName;
              add_header Access-Control-Allow-Credentials true;
              add_header Access-Control-Request-Method X-Requested-With,Content-Type,Accept,Platform,Token,Authorization;
              add_header Access-Control-Max-Age 3602;
        proxy_pass http://yc-test/;

Nginx服务器可以通过添加跨域资源共享(CORS)头来解决跨域问题。在Nginx服务器上实现CORS,可以根据不同的项目或网站实际情况进行不同的配置,并且控制在服务端进行,提高了数据安全性。

以下是Nginx跨域实现的步骤:

找到nginx配置文件,默认位置为 /etc/nginx/nginx.conf。

在server段,添加如下代码:

Copy code
location / {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
    add_header 'Access-Control-Allow-Headers' 'X-Requested-With,Content-Type';
    if ($request_method = 'OPTIONS') {
        return 200;
    }
}
重启nginx服务器。
以上代码中:

add_header 'Access-Control-Allow-Origin' '*':允许跨域访问的域名。其中,'*'表示允许所有域名访问。
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE':允许跨域访问的方法,如GET、POST、OPTIONS等。
add_header 'Access-Control-Allow-Headers' 'X-Requested-With,Content-Type':允许跨域访问的请求头,如X-Requested-With、Content-Type等。
if ($request_method = 'OPTIONS') { return 200; }:判断请求方法是否为OPTIONS,如果是则返回200。

posted @ 2023-02-25 14:56  安生丶  阅读(61)  评论(0编辑  收藏  举报