nginx-配置允许跨域

nginx 配置允许跨域,网上找了很多方法,普遍说加3个add_header就能实现跨域的,不知道是不是系统环境不一样,反正我是没成功。

最终还是用下面的方法成功,特此记录下:

server {
    listen       88;
    server_name  http://localhost;

     #proxy_set_header Host $host;
     #proxy_set_header X-Real-Ip $remote_addr;
     #proxy_set_header X-Forwarded-For $remote_addr;

    #   指定允许跨域的方法,*代表所有
    add_header Access-Control-Allow-Methods *;

    #   预检命令的缓存,如果不缓存每次会发送两次请求
    add_header Access-Control-Max-Age 3600;
    #   不带cookie请求,并设置为false
    add_header Access-Control-Allow-Credentials false;

    #   表示允许这个域跨域调用(客户端发送请求的域名和端口) 
    #   $http_origin动态获取请求客户端请求的域   不用*的原因是带cookie的请求不支持*号
    add_header Access-Control-Allow-Origin $http_origin;

    #   表示请求头的字段 动态获取
    add_header Access-Control-Allow-Headers 
    $http_access_control_request_headers;

    #   OPTIONS预检命令,预检命令通过时才发送请求
    #   检查请求的类型是不是预检命令
    if ($request_method = OPTIONS){
        return 200;
    }

    location / {
        #这里省略很多字
    }

}

 

posted @ 2022-06-04 20:53  北极之光的博客  阅读(5568)  评论(0编辑  收藏  举报