配置Nginx允许跨域请求,折腾了好长时间,终于配置成功

近期,用到API接口调用,A网址需要调用B网址的API,但是前端浏览器不通过,提示CORS跨域错误。

于是网上找了很多方法,前端和服务端都试过。没有一个成功的。

这个问题折腾了好长时间,终于用此方法配置Nginx,成功实现跨域访问,以下是详细记录:

ser}

}ver
{
    listen 80;
    listen 443 ssl;
    server_name api.yeebai.com;
    index index.html i.html;
    root x:/yeebai/public;
    
    # 指定允许跨域的方法,*代表所有域通过
    add_header Access-Control-Allow-Methods *;

    # 预检命令的缓存,如果不缓存每次会发送两次请求
    add_header Access-Control-Max-Age 3600;
    # cookie请求是否开启
    add_header Access-Control-Allow-Credentials true;

    # 表示允许这个域跨域调用 
    # $http_origin 动态获取请求客户端请求的域
    add_header Access-Control-Allow-Origin $http_origin;

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

    # 判断预检命令,通过时发送请求
    if ($request_method = OPTIONS){
        return 200;
    }
    
    # HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }

}

评论(0)